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)的主要内容,如果未能解决你的问题,请参考以下文章