lc108. Convert Sorted Array to Binary Search Tree

博客介绍了将有序数组转换为高度平衡的二叉搜索树(BST)的问题。给定升序数组,要将其转换为左右子树深度差不超1的BST。给出示例,还阐述思路,即取数组中间值为根,左右子数组迭代,最后给出Python3代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Convert Sorted Array to Binary Search Tree Easy

1169

120

Favorite

Share Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

Example:

Given the sorted array: [-10,-3,0,5,9],

One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:

  0
 / \
复制代码

-3 9 / / -10 5

思路: BST满足left.key<parent.key<=right.key,所以,数组取中间值,中间值为root,左右子数组做迭代,

代码:python3



class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
        def convert(left,right):
            if left>right:return None
            mid=(left+right)//2
            node=TreeNode(nums[mid])
            node.left=convert(left,mid-1)
            node.right=convert(mid+1,right)
            return node
        return convert(0,len(nums)-1)
复制代码

tips:

BST任何一颗子树上的三个节点left, parent, right. 满足条件left.key<parent.key<=right.key,一颗典型的BST如下图所示:
复制代码

转载于:https://juejin.im/post/5d09d7b06fb9a07ee9587401

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值