LeetCode(剑指 Offer)- 54. 二叉搜索树的第k大节点

简介: LeetCode(剑指 Offer)- 54. 二叉搜索树的第k大节点

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 字节跳动

AC 代码

  • Java
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/classSolution {
intth;
List<Integer>list=newArrayList<>();
publicintkthLargest(TreeNoderoot, intk) {
th=k;
dfs(root);
returnlist.get(k-1);
    }
voiddfs(TreeNodenode) {
if (node==null||list.size() ==th) {
return;
        }
dfs(node.right);
list.add(node.val);
dfs(node.left);
    }
}
  • C++
classSolution {
public:
intkthLargest(TreeNode*root, intk) {
this->k=k;
dfs(root);
returnres;
    }
private:
intres, k;
voiddfs(TreeNode*root) {
if(root==nullptr) return;
dfs(root->right);
if(k==0) return;
if(--k==0) res=root->val;
dfs(root->left);
    }
};
目录
相关文章
|
2月前
【LeetCode 45】701.二叉搜索树中的插入操作
【LeetCode 45】701.二叉搜索树中的插入操作
10 1
|
2月前
【LeetCode 44】235.二叉搜索树的最近公共祖先
【LeetCode 44】235.二叉搜索树的最近公共祖先
18 1
|
2月前
【LeetCode 48】108.将有序数组转换为二叉搜索树
【LeetCode 48】108.将有序数组转换为二叉搜索树
40 0
|
2月前
【LeetCode 47】669.修剪二叉搜索树
【LeetCode 47】669.修剪二叉搜索树
10 0
|
2月前
【LeetCode 46】450.删除二叉搜索树的节点
【LeetCode 46】450.删除二叉搜索树的节点
19 0
|
2月前
【LeetCode 42】501.二叉搜索树中的众数
【LeetCode 42】501.二叉搜索树中的众数
10 0
|
2月前
【LeetCode 41】530.二叉搜索树的最小绝对差
【LeetCode 41】530.二叉搜索树的最小绝对差
11 0
|
2月前
【LeetCode 40】98.验证二叉搜索树
【LeetCode 40】98.验证二叉搜索树
13 0
|
2月前
【LeetCode 39】700.二叉搜索树中的搜索
【LeetCode 39】700.二叉搜索树中的搜索
16 0
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行