题目链接:点击打开链接
题目大意:略
解题思路:略
相关企业
- 字节跳动
AC 代码
- Java
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
int th;
List<Integer> list = new ArrayList<>();
public int kthLargest(TreeNode root, int k) {
th = k;
dfs(root);
return list.get(k - 1);
}
void dfs(TreeNode node) {
if (node == null || list.size() == th) {
return;
}
dfs(node.right);
list.add(node.val);
dfs(node.left);
}
}
- C++
class Solution {
public:
int kthLargest(TreeNode* root, int k) {
this->k = k;
dfs(root);
return res;
}
private:
int res, k;
void dfs(TreeNode* root) {
if(root == nullptr) return;
dfs(root->right);
if(k == 0) return;
if(--k == 0) res = root->val;
dfs(root->left);
}
};