[Tree]108. Convert Sorted Array

2019-02-23  本文已影响0人  野生小熊猫

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.感觉特别简单???

上一篇 下一篇

猜你喜欢

热点阅读