leetcode之Convert Sorted Array to Binary Search Tree

来源:互联网 发布:淘宝女童模特 编辑:程序博客网 时间:2024/06/05 22:43
这题采用的做法是将中间的数作为root,而左子树又是下一个递归的根,依次递归来求解。代码如下:
# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution(object):    def sortedArrayToBST(self, nums):        """        :type nums: List[int]        :rtype: TreeNode        """        length = len(nums)        if length == 0:            return None        if length == 1:            return TreeNode(nums[0])        if length == 2:            root = TreeNode(nums[0])            root.right = TreeNode(nums[1])        if length == 3:            root = TreeNode(nums[1])            root.left = TreeNode(nums[0])            root.right = TreeNode(nums[2])            return root        root = TreeNode(nums[length / 2])        root.left = self.sortedArrayToBST(nums[:length / 2])        root.right = self.sortedArrayToBST(nums[length / 2 + 1:])        return root

0 0