leetCode如何找出二叉搜索树的第k大节点
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍leetCode如何找出二叉搜索树的第k大节点,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一,二叉搜索树的第k大节点1,问题简述给定一棵二叉搜索树,请找出其中
千家信息网最后更新 2026年11月02日leetCode如何找出二叉搜索树的第k大节点
这篇文章主要介绍leetCode如何找出二叉搜索树的第k大节点,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一,二叉搜索树的第k大节点
1,问题简述
给定一棵二叉搜索树,请找出其中第k大的节点。
2,示例描述
示例 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 ≤ 二叉搜索树元素个数
3,题解思路
二叉搜索树的中序遍历就是元素递增的,根据中序遍历得到的数据即可解决。
4,题解程序
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class KthLargestTest3 {
public static void main(String[] args) {
TreeNode t1=new TreeNode(3);
TreeNode t2=new TreeNode(1);
TreeNode t3=new TreeNode(4);
TreeNode t4=new TreeNode(2);
t1.left=t2;
t1.right=t3;
t2.right=t4;
int k=1;
int kthLargest = kthLargest(t1, k);
System.out.println("kthLargest = " + kthLargest);
}
public static int kthLargest(TreeNode root, int k) {
if (root == null) {
return 0;
}
List list = new ArrayList<>();
dfs(root, list);
list.sort(Comparator.reverseOrder());
return list.get(k - 1);
}
private static void dfs(TreeNode root, List list) {
if (root == null) {
return;
}
if (root.left != null) {
dfs(root.left, list);
}
list.add(root.val);
if (root.right != null) {
dfs(root.right, list);
}
}
}
以上是"leetCode如何找出二叉搜索树的第k大节点"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
搜索
节点
示例
元素
内容
篇文章
题解
输入
输出
个数
价值
兴趣
小伙
小伙伴
就是
思路
数据
更多
知识
程序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州万易互联网科技有限公司
中国互联网科技工作委员会毛军
新华互联网科技学校
网络科技有限互联网
银优互联网科技有限公司
北京禾田雨橡互联网科技
齐家互联网科技有限公司
汽车互联网创新科技园
互联网公司科技股
上海宁丞科技互联网
浙江互联网科技研学营
江阴互联网智能科技产品进口
哈尔滨屹滨互联网科技有限公司
高科技互联网发展前景如何
群盈汇互联网科技有限公司
35岁以上互联网科技行业
山东大美朱楼互联网科技有限公司
萌小萌互联网科技河南有限公司
同城互联网络科技
亚光科技低轨卫星互联网
广州紫鲸互联网科技有限公司
互联网科技巨头监管
唐信互联网科技
齐家互联网科技有限公司
互联网 新科技
甘肃拓世互联网科技有限公司
海南科技产业互联网平台
中化能源互联网科技招聘
富国互联网金融科技混合基金
银川新华互联网科技学校招聘