每日leetcode(26)
今天的题目是有序数组转平衡二叉树
二叉搜索树的特点就是节点的左儿子所有点的值都小于该节点,其右儿子所有点的值都大于该节点。既然数组是有序的,先取数组的中间节点为根,然后把数组分为左右两个字数组,依次递归就可以了
下面代码是评论区的,我对平衡二叉树的构建有点模糊了
class Solution:
def sortedArrayToBST(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
if not nums:
return None
else:
mid=len(nums)//2
tn=TreeNode(nums[mid])
nums1=nums[0:mid]
nums2=nums[mid+1:len(nums)]
tn.left=self.sortedArrayToBST(nums1)
tn.right=self.sortedArrayToBST(nums2)
return tn