美文网首页
[Tree]108. Convert Sorted Array

[Tree]108. Convert Sorted Array

作者: 野生小熊猫 | 来源:发表于2019-02-23 02:57 被阅读0次
    • 分类:Tree
    • 时间复杂度: O(n) 这种把树的节点都遍历一遍的情况时间复杂度为O(n)
    • 空间复杂度: O(h) 树的节点的深度

    108. Convert Sorted Array to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

    For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

    Example:

    Given the sorted array: [-10,-3,0,5,9],
    
    One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:
    
          0
         / \
       -3   9
       /   /
     -10  5
    

    代码:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def sortedArrayToBST(self, nums: 'List[int]') -> 'TreeNode':
            if nums==None:
                return None
            return self.helper(nums,0,len(nums)-1)
        
        def helper(self,nums,start,end):
            if start>end:
                return 
            mid=(end-start)//2+start
            root=TreeNode(nums[mid])
            root.left=self.helper(nums,start,mid-1)
            root.right=self.helper(nums,mid+1,end)
            return root
    

    讨论:

    1.感觉特别简单???

    相关文章

      网友评论

          本文标题:[Tree]108. Convert Sorted Array

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