Day23(10.13)

669 修建二叉树

class Solution:
    def trimBST(self, root: Optional[TreeNode], low: int, high: int) -> Optional[TreeNode]:
        if not root:
            return None
        if root.val<low:
            return self.trimBST(root.right,low,high)
        if root.val>high:
            return self.trimBST(root.left,low,high)
        root.left=self.trimBST(root.left,low,high)
        root.right=self.trimBST(root.right,low,high)
        return root

108 将有序数组转换为二叉搜索树

class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:
        def sub(l,r):
            if l>r:
                return None
            mid=(l+r)//2
            root=TreeNode(nums[mid])
            root.left=sub(l,mid-1)
            root.right=sub(mid+1,r)
            return root
        return sub(0,len(nums)-1)
            

538 把二叉搜索树转换为累加树

class Solution:
    def convertBST(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        def sub(root):
            nonlocal total
            if root:
                sub(root.right)
                total+=root.val
                root.val=total
                sub(root.left)
            return root
        total=0
        sub(root)
        return root
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本系列是代码随想录算法训练营的学习笔记之day23,主要记录一下刷题的过程,以及核心知识点和一些值的记录的问题。 ...
    GIS与Climate阅读 110评论 0 0
  • Leetcode104:Maximum Depth of Binary Tree 二叉树最大深度 解题思路:用递归...
    Yuyao_b2c0阅读 134评论 0 0
  • 1,二叉树 每个结点最多有两个子树的树结构 2,满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0...
    liang1030阅读 448评论 0 0
  • 二叉树(dfs、bfs) 主要掌握前序、中序、后续、层序、广度、深度的几种遍历方式。其中,涉及到二叉搜索树的,多需...
    cqf阅读 97评论 0 0
  • 这里是力扣简单题的方案解析及python实现,有关中等和困难题目,请移步: 简单题(已完成,完善中)中等题(更新中...
    玖月晴阅读 14,478评论 0 16