Day21(10.11)

530 二叉搜索树的最小绝对差

class Solution:
    def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
        self.last=float('inf')
        self.temp=float('inf')
        def sub(root):
            if not root:
                return 
            sub(root.left)
            if abs(root.val-self.last)<self.temp:
                self.temp=abs(root.val-self.last)
            self.last=root.val
            sub(root.right)
            


        sub(root)
        return self.temp

501 二叉搜索树中的众数

class Solution:
    def findMode(self, root: Optional[TreeNode]) -> List[int]:
        self.rets=[]
        self.times=0
        self.lasttime=0
        self.last=None
        def sub(root):
            if not root:
                return 
            sub(root.left)
            if root.val==self.last:
                self.lasttime+=1
                
            else:
                self.last=root.val
                self.lasttime=1
            if self.times<self.lasttime:
                self.rets=[self.last]
                self.times=self.lasttime
            elif self.times==self.lasttime:
                self.rets.append(self.last)
            sub(root.right)
        sub(root)
        return self.rets

236 二叉树的最近公共祖先

class Solution:
    def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
        self.ret=None
        def sub(root,left,right):
            if not root:
                return False
            l=sub(root.left,left,right)
            r=sub(root.right,left,right)
            if (l and r)or((root.val==p.val or root.val==q.val) and (l or r)):
                self.ret=root
            if l or r or root.val==p.val or root.val==q.val:
                return True
            return False
        sub(root,p,q)
        return self.ret
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 🍎 题目汇总 654. 最大二叉树[https://leetcode-cn.com/problems/maximu...
    FlowerDancee阅读 182评论 0 0
  • 1,二叉树 每个结点最多有两个子树的树结构 2,满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0...
    liang1030阅读 447评论 0 0
  • https://leetcode-cn.com/problems/minimum-depth-of-binary-...
    Eden0503阅读 234评论 0 0
  • 二叉树(dfs、bfs) 主要掌握前序、中序、后续、层序、广度、深度的几种遍历方式。其中,涉及到二叉搜索树的,多需...
    cqf阅读 94评论 0 0
  • 一、遍历问题 2020.11.02 No.94 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输...
    维李设论阅读 382评论 0 0