二叉树530|501
530二叉搜索树的最小绝对差
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def __init__(self): self.result = float('inf') self.pre = None def getMinimumDifference(self, root: Optional[TreeNode]) -> int: self.traversal(root) return self.result def traversal(self, node) -> int: if not node: return cur = node self.traversal(cur.left) if self.pre: self.result = min(self.result, cur.val - self.pre.val) self.pre = cur self.traversal(cur.right)
501二叉搜索树中的众数
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def __init__(self): self.count = 0 self.max_count = 0 self.result = [] self.pre = None def findMode(self, root: Optional[TreeNode]) -> List[int]: self.traversal(root) return self.result def traversal(self, node) -> List: if not node: return cur = node self.traversal(cur.left) if not self.pre: self.count = 1 elif self.pre.val == cur.val: self.count += 1 else: self.count = 1 self.pre = cur if self.count == self.max_count: self.result.append(cur.val) elif self.count > self.max_count: self.max_count = self.count self.result = [cur.val] self.traversal(cur.right)