当前位置:网站首页>[LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点
[LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点
2022-08-02 15:41:00 【Spring-_-Bear】
给定一棵二叉搜索树,请找出其中第 k 大的节点的值。
示例 1:
输入: root = [3,1,4,null,2], k = 1
3
/ \
1 4
\
2
输出: 4
示例 2:
输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
输出: 4
限制:
1 ≤ k ≤ 二叉搜索树元素个数
题解:
class Solution {
int res;
int k;
/** * 剑指 Offer 54. 二叉搜索树的第k大节点 */
public int kthLargest(TreeNode root, int k) {
/* * 二叉搜索树中序遍历(左 -> 根 -> 右)结果列表为升序, * 则二叉搜索树中序遍历的逆序遍历(右 -> 根 -> 左)结果列表为降序, * 记录结果列表的下标,直接返回第 k 个数字即可 */
this.k = k;
dfs(root);
return res;
}
void dfs(TreeNode root) {
if (root == null) {
return;
}
// 递归右子树
dfs(root.right);
// 找到了第 k 大的数,提前结束遍历
if (--k == 0) {
res = root.val;
return;
}
// 递归左子树
dfs(root.left);
}
}
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof
边栏推荐
猜你喜欢

23、wpf之布局(一)

(LinkedList与链表) 和 (ArrayList与顺序表)的区别

Reed-Solomon Codes——RS纠错码
![【[NOI2001] 炮兵阵地】【状压DP】](/img/ae/6b01b175b0158fb804211931d57c0c.jpg)
【[NOI2001] 炮兵阵地】【状压DP】

MPLS实验

Basic management of system storage -- mounts, partitions, user quotas

每日练习------定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;

UnicodeEncodeError: 'gbk' codec can't encode character '\u2022' in position 178: illegal multibyte s

怒写400篇AI文章!这群妹子卷疯了…

MySQL【数据类型】
随机推荐
ACL/NAACL'22 推荐系统论文梳理
记一次内部分享——瞎扯淡
不平衡之钥: 重加权法知几何
ROS人机交互软件
无线振弦采集仪远程修改参数方式
2022 年值得尝试的 7 个 MQTT 客户端工具
第十四天笔记
23、wpf之布局(一)
智能座舱供应链的“新主角”
一文搞懂│php 中的 DI 依赖注入
【面经】被虐了之后,我翻烂了equals源码,总结如下
2022年值得尝试的7个MQTT客户端工具
看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!
Thinkpad E430c使用u盘安装系统
机械臂速成小指南(十六):带抛物线过渡的线性规划
MySQL【数据类型】
dogs vs cats 二分类问题vgg16迁移学习
ROS 之 KUKA iiwa编程
“如何写好一篇学术论文?”这大概是最详实的一则攻略了!
(LinkedList与链表) 和 (ArrayList与顺序表)的区别