美文网首页
LeetCode-108-将有序数组转换为二叉搜索树(pytho

LeetCode-108-将有序数组转换为二叉搜索树(pytho

作者: JunfengsBlog | 来源:发表于2019-08-22 21:55 被阅读0次
将有序数组转换为二叉搜索树
  1. 二叉搜索树的性质:任一节点(假设有左右两个节点)的值大于其左孩子节点的值,小于其右孩子节点的值。
  2. 二叉搜索树中序遍历得到的数组是一个升序数组。
    思路:由上面一二点分析可得:数组中间值所构成的节点其实就是根节点。根节点左边数组构成其左子树,根节点右边的数组构成其右子树。递归构建每个节点的左右子树。
    心得:递归真神奇。
class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
        if len(nums) == 0:
            return 
        mid = len(nums) // 2
        root = TreeNode(nums[mid])
        root.left = self.sortedArrayToBST(nums[:mid])
        root.right = self.sortedArrayToBST(nums[mid+1:])
        
        return root

相关文章

网友评论

      本文标题:LeetCode-108-将有序数组转换为二叉搜索树(pytho

      本文链接:https://www.haomeiwen.com/subject/choosctx.html