【亡羊补牢】挑战数据结构与算法 第37期 LeetCode 108. 将有序数组转换为二叉搜索树(二叉树)
发布日期:2021-06-29 14:34:16 浏览次数:3 分类:技术文章

本文共 1228 字,大约阅读时间需要 4 分钟。

仰望星空的人,不应该被嘲笑

题目描述

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

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

示例:

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

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

题目要求高度平衡——构建 root 时,选数组的中间元素作为 root 节点值,即可保证平衡。

类似分治算法一样,对中间位置确定根节点 root ,然后递归左子树和右子树,最终走完后就是我们的高度平衡的子树。

参考 大佬题解

/** * Definition for a binary tree node. * function TreeNode(val) { *     this.val = val; *     this.left = this.right = null; * } *//** * @param {number[]} nums * @return {TreeNode} */var sortedArrayToBST = function (nums) {
let buildBST = (nums, start, end) => {
if (start > end) return null; // 找到中间位置 let mid = (start + end) >>> 1; // 创建根节点 let root = new TreeNode(nums[mid]); // 构建左子树 root.left = buildBST(nums, start, mid - 1); // 构建右子树 root.right = buildBST(nums, mid + 1, end); return root; } return buildBST(nums,0,nums.length-1);};

最后

文章产出不易,还望各位小伙伴们支持一波!

往期精选:

小伙伴们可以在Issues中提交自己的解题代码,🤝 欢迎Contributing,可打卡刷题,Give a ⭐️ if this project helped you!

,方便小伙伴阅读玩耍~

学如逆水行舟,不进则退

转载地址:https://chocolate.blog.csdn.net/article/details/108781009 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【亡羊补牢】挑战数据结构与算法 第38期 LeetCode 450. 删除二叉搜索树中的节点(二叉树)【详解】
下一篇:【亡羊补牢】挑战数据结构与算法 第36期 LeetCode 236. 二叉树的最近公共祖先(二叉树)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月17日 20时28分12秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

自从我学会了数据挖掘Matplotlib、Numpy、Pandas、Ta-Lib等一系列库,我把领导开除了 2019-04-29
Python抓取哔哩哔哩up主信息:只要爬虫学的好,牢饭吃的早 2019-04-29
有个码龄5年的程序员跟我说:“他连wifi从来不用密码” 2019-04-29
领导让我整理上个季度的销售额,幸好我会Python数据分析,你猜我几点下班 2019-04-29
【Python爬虫实战】为何如此痴迷Python?还不是因为爱看小姐姐图 2019-04-29
零基础自学Python,你也可以实现经济独立! 2019-04-29
ElasticSearch与Mysql对比(ElasticSearch常用方法大全,持续更新) 2019-04-29
数字化转型的主干道上,华为云以“三大关键”成企业智能化推手 2019-04-29
数字化为何不走“捷”“径”? 2019-04-29
和总裁、专家交朋友,华为云助推政企智能化升级又做到前面去了 2019-04-29
BCOP章鱼船长,6月22日晚上8点上线薄饼 2019-04-29
为战疫助力,半导体功不可没 2019-04-29
了解这些操作,Python中99%的文件操作都将变得游刃有余! 2019-04-29
知道如何操作还不够!深入了解4大热门机器学习算法 2019-04-29
只有经历过,才能深刻理解的9个编程道理 2019-04-29
发现超能力:这些数据科学技能助你更高效专业 2019-04-29
AI当道,人工智能将如何改变金融业? 2019-04-29
消除性别成见,技术领域需要更多“乘风破浪的姐姐” 2019-04-29
7行代码击败整个金融业,这对20多岁的爱尔兰兄弟是如何做到的? 2019-04-29
2020十大编程博客:私藏的宝藏编程语言博客大放送! 2019-04-29