欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【LeetCode】将有序数组转换为二叉搜索树

【LeetCode】将有序数组转换为二叉搜索树

2024/10/24 6:41:48 来源:https://blog.csdn.net/qq_26521261/article/details/141036868  浏览:    关键词:【LeetCode】将有序数组转换为二叉搜索树

目录

  • 一、题目
  • 二、解法
  • 完整代码


一、题目

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵
平衡
二叉搜索树。

示例 1:
在这里插入图片描述

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
在这里插入图片描述
示例 2:

在这里插入图片描述

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

提示:

1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums 按 严格递增 顺序排列


二、解法

因为数组严格递增,所以每次将中点拿出来,变成一个节点,然后再递归的往左右两边探寻


完整代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:if len(nums) == 0:return Nonemid = len(nums) // 2node = TreeNode(nums[mid])node.left = self.sortedArrayToBST(nums[ : mid])node.right = self.sortedArrayToBST(nums[mid + 1: ])return node

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com