LeetCode-108-将有序数组转换为二叉搜索树(python)
文章图片
将有序数组转换为二叉搜索树
- 二叉搜索树的性质:任一节点(假设有左右两个节点)的值大于其左孩子节点的值,小于其右孩子节点的值。
- 二叉搜索树中序遍历得到的数组是一个升序数组。
思路:由上面一二点分析可得:数组中间值所构成的节点其实就是根节点。根节点左边数组构成其左子树,根节点右边的数组构成其右子树。递归构建每个节点的左右子树。
心得:递归真神奇。
class Solution:
def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
if len(nums) == 0:
return
mid = len(nums) // 2
root = TreeNode(nums[mid])
root.left = self.sortedArrayToBST(nums[:mid])
root.right = self.sortedArrayToBST(nums[mid+1:])return root
推荐阅读
- 即将到手三百万
- 思友人
- 20210307《挑战赛怂人胆》【能量将帅挑战赛(01)】
- 苍灵十二将I|苍灵十二将I 第一百二十五章 关门猎兽
- 那条灰色的人行道
- 《没有你我将会很幸福》
- 《将来的你,一定会感谢现在战胜烦恼的自己-------第四章/第十一节/用逆向思维解除烦恼》
- 牧人将归
- 首届中国苏州江南文化艺术国际旅游节将于8月24日启幕
- 陆军中将谭自平