码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-04-06 17:48:50      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:高度   nbsp   elf   list   image   有序   div   转换   width   

技术图片 

 

 

 

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)

标签:高度   nbsp   elf   list   image   有序   div   转换   width   

原文地址:https://www.cnblogs.com/ChevisZhang/p/12642860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!