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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容