美文网首页
[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