当前位置:网站首页>[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
边栏推荐
猜你喜欢
随机推荐
let块级作用域,var变量提升
【服务器数据恢复】Raid阵列更换故障硬盘后数据同步失败的数据恢复案例
【服务器数据恢复】Raid阵列更换故障硬盘后数据同步失败的数据恢复案例
关于小程序TabBar跳转页面跟TabBar标签栏的icon不对应的分析(debug)
JZ27 二叉树的镜像
CWE4.8: The 25 most damaging software security issues in 2022
从幻核疑似裁撤看如何保证NFT的安全
【暑期集训第一周:搜索】【DFS&&BFS】
WWW'22 推荐系统论文之序列推荐篇
NC231 只出现一次的数字
JZ10 斐波那契数列
Go-4-在vim中无法跳转到源代码
从特征交互到数据交互,浅谈深度点击率模型的新趋势
跨境电商看不到另一面:商家刷单、平台封号、黑灰产牟利
最强分布式锁工具:Redisson
微信小程序:Framework inner error FLOW_CREATE_NODE
11.1-CM24 最近公共祖先
CefSharp实战演示
亏损扩大/毛利偏低,北斗智联与「智能座舱第一阵营」的不等号
Anti-shake throttling (continue to update later)