刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
面试题
给定一个升序数组,将它转变为一个二叉平衡搜索树,返回它的头节点;
使用微信搜索喵呜刷题,轻松应对面试!
答案:
解答思路:
将升序数组转化为平衡二叉搜索树,可以采用递归的方式来实现。递归的思路是,数组的中间元素作为根节点,然后递归地将数组的左半部分转化为左子树,右半部分转化为右子树。由于数组是升序的,因此左子树的元素都小于根节点,右子树的元素都大于根节点。这样构建的二叉树能够保持平衡。
最优回答:
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def sortedArrayToBST(nums):
if not nums: # 如果数组为空,返回None作为头节点
return None
mid = len(nums) // 2 # 找到数组中间的元素作为根节点
node = TreeNode(nums[mid]) # 创建根节点
node.left = sortedArrayToBST(nums[:mid]) # 递归构建左子树
node.right = sortedArrayToBST(nums[mid+1:]) # 递归构建右子树
return node # 返回根节点
解析:
创作类型:
原创
本文链接:给定一个升序数组,将它转变为一个二叉平衡搜索树,返回它的头节点;
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



