zoukankan      html  css  js  c++  java
  • 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)

      

  • 相关阅读:
    javaScript快速入门
    解决编程式路由往同一地址跳转时会报错的情况
    babel 依赖
    路由拆分可以达到一定程度的性能优化
    正则的扩展
    设计模式
    mysql数据库
    php基本语法
    事件循环
    面向对象编程
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12642860.html
Copyright © 2011-2022 走看看