当前位置:网站首页>[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
边栏推荐
猜你喜欢
UnicodeEncodeError: 'gbk' codec can't encode character '\u2022' in position 178: illegal multibyte s
微信小程序:Framework inner error FLOW_CREATE_NODE
【[NOI2001] 炮兵阵地】【状压DP】
【wpf】ListView 和 ItemsControl 的一点区别
Number 类及各子类所占字节数源码分析
2.7 - 文件管理 2.8 - 多级目录结构 2.9 - 位示图
dogs vs cats 二分类问题vgg16迁移学习
Break the stereotype, DIY is your own unique mall
【Transformer专题】Vision Transformer(ViT)原理 + 代码
每日练习------定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;
随机推荐
多商户商城系统功能拆解20讲-平台端分销概况
CefSharp practical demonstration
机械臂速成小指南(十七):直线规划
JZ32 从上往下打印二叉树
VPP snort插件
JZ40 最小的K个数
JZ15 二进制中1的个数
20 Lectures on Disassembly of Multi-merchant Mall System Functions-Platform Distribution Overview
【服务器数据恢复】Raid阵列更换故障硬盘后数据同步失败的数据恢复案例
11.1-CM24 最近公共祖先
不平衡问题: 深度神经网络训练之殇
DevOps开发工具对比
助力疫情防控,30行代码就能搞定无服务器实时健康码识别!
Thinkpad E430c使用u盘安装系统
CWE4.8: The 25 most damaging software security issues in 2022
Azure Kinect(K4A)人体识别跟踪进阶
网御数据库审计系统配置Radius启用双因素/双因子(2FA/MFA)身份认证
基于深度学习的机器人目标识别和跟踪
Advanced usage of vim configuration
JZ70 矩形覆盖