| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> 图解LeetCode——998. 最大二叉树 II(难度:中等) -> 正文阅读 |
|
|
[数据结构与算法]图解LeetCode——998. 最大二叉树 II(难度:中等) |
一、题目最大树?定义:一棵树,并满足:其中每个节点的值都大于其子树中的任何其他值。 给你最大树的根节点? 就像?
请注意,题目没有直接给出? 假设? 二、示例2.1> 示例 1:
2.2> 示例 2:
2.3> 示例 3:
提示:
三、解题思路我猜测,当您看到这篇解题文章的时候,很大概率是因为题目描述难以理解。题目难以理解的原因,其实就在于本题与另一道题( 在“654. 最大二叉树”题目中,它是给出了一个数组nums,首先,将数组中最大的元素nums[i]作为根节点root,那么
那么,我们了解完“654. 最大二叉树”这道题之后,再来看本题,是不是就清晰了不少。而本题其实没有给出数组nums,给的是已经构建好的二叉树的root节点,但是其实nums和root两个结构是相辅相成的。那么,此时,我们要加入一个val值,其实也就是插入到nums数组的末尾处,也就是说,如果不考虑值的大小的话,val节点是nums中原有所有节点的右侧节点,所以我们对比遍历的路径就是
思路我们介绍完了,下面,我们以示例3:root = [5,2,3,null,1], val = 4为例,看一下具体的操作过程。首先,我们要将4插入到二叉树中,那么,我们对比root节点node(5) > 4,所以,继续遍历node(5)的右子树node(3),因为node(3) < 4,所以,我们创建val=4这个节点,并将node(3)作为它的左子树,即:
解题思路就这么多了,具体的代码实现,请参见如下内容。 四、代码实现
今天的文章内容就这些了:
更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/21 22:55:25- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |