108. 将有序数组转换为二叉搜索树-BST与AVL (leetcode)

Posted ChevisZhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了108. 将有序数组转换为二叉搜索树-BST与AVL (leetcode)相关的知识,希望对你有一定的参考价值。

 

 

 

 

AVL,在本题中:

  1.由于构造的树的AVL,其子树高度差不超过1. 所以在选值时,要选nums中间的值作为node

  2.由于每一颗子树都是AVL,所以需要使用递归 每次都选择区间中值构造Node

 

代码借鉴官方答案:

 

class TreeNode:
     def __init__(self, x):
         self.val = x
         self.left = None
         self.right = None

class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
        def helper(left,right):
            #底部思想:
            if left>right :
                return None
            #顶部思想:
            point = (left+right)//2
            node = TreeNode(nums[point])
            node.left = helper(left,point-1)
            node.right = helper(point+1,right)
            return node
        return helper(0,len(nums)-1)

  

以上是关于108. 将有序数组转换为二叉搜索树-BST与AVL (leetcode)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 108. 将有序数组转换为二叉搜索树 | Python

108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树

LeetCode 108. 将有序数组转换为二叉搜索树

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

LeetCode 108. 将有序数组转换为二叉搜索树