您好,欢迎来到星星旅游。
搜索
您的当前位置:首页23.将有序数组转换为二叉搜索树(简单)

23.将有序数组转换为二叉搜索树(简单)

来源:星星旅游

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。

本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

示例:

给定有序数组: [-10,-3,0,5,9],

一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:

				      0
				     / \
				   -3   9
				   /   /
				 -10  5
# Definition for a binary tree 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:
        if len(nums): # 当数组长度不为0时
            mid = len(nums)//2 # 取中间索引
            root = TreeNode(nums[mid]) # 建立根节点, 并以中间节点的值赋予根节点
            root.left = self.sortedArrayToBST(nums[0:mid]) # 递归建立左子树
            root.right = self.sortedArrayToBST(nums[mid+1:len(nums)]) # 递归建立右子树
            return root 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务