当前位置:   article > 正文

代码随想录算法训练营第二十三天|第六章二叉树:669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树(python)

代码随想录算法训练营第二十三天|第六章二叉树:669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树(python)

669. 修剪二叉搜索树

视频讲解链接

  1. class Solution:
  2. def trimBST(self, root: Optional[TreeNode], low: int, high: int) -> Optional[TreeNode]:
  3. if not root:
  4. return None
  5. if root.val < low:
  6. right = self.trimBST(root.right,low,high)
  7. return right
  8. if root.val > high:
  9. left = self.trimBST(root.left, low, high)
  10. return left
  11. root.left = self.trimBST(root.left, low, high)
  12. root.right = self.trimBST(root.right, low, high)
  13. return root

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

视频讲解链接

  1. class Solution:
  2. def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:
  3. root = self.traversal(nums, 0, len(nums)-1)
  4. return root
  5. def traversal(self, nums, left, right):
  6. if left > right: #区间不合法
  7. return None
  8. mid = left + (right - left) // 2 #找中点
  9. mid_root = TreeNode(nums[mid])
  10. mid_root.left = self.traversal(nums, left, mid-1)
  11. mid_root.right = self.traversal(nums, mid+1, right)
  12. return mid_root

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

 视频讲解链接

  1. class Solution:
  2. def __init__(self):
  3. self.pre = TreeNode()
  4. def convertBST(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
  5. self.traversal(root)
  6. return root
  7. def traversal(self, root: TreeNode) -> None:
  8. if not root:
  9. return None
  10. self.traversal(root.right) # 右
  11. root.val += self.pre.val # 中
  12. self.pre = root
  13. self.traversal(root.left) # 左

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/910423
推荐阅读
相关标签
  

闽ICP备14008679号