LeetCode-108-将有序数组转换为二叉搜索树(python)

LeetCode-108-将有序数组转换为二叉搜索树(python)
文章图片
将有序数组转换为二叉搜索树

  1. 二叉搜索树的性质:任一节点(假设有左右两个节点)的值大于其左孩子节点的值,小于其右孩子节点的值。
  2. 二叉搜索树中序遍历得到的数组是一个升序数组。
    思路:由上面一二点分析可得:数组中间值所构成的节点其实就是根节点。根节点左边数组构成其左子树,根节点右边的数组构成其右子树。递归构建每个节点的左右子树。
    心得:递归真神奇。
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

    推荐阅读