二叉搜索树的第k大节点——leetcode54
二叉搜索树的第k大节点
题目:二叉搜索树的第k大节点
给定一棵二叉搜索树,请找出其中第 k
大的节点的值。
示例:
输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
输出: 4
题解:dfs
右根左遍历二叉树
class Solution {
private int result, count;
public void dfs(TreeNode root, int k){
if(root==null || count>=k) return;
dfs(root.right, k);
if(++count==k) { result=root.val; return;}
dfs(root.left, k);
}
public int kthLargest(TreeNode root, int k) {
result=0;count=0;
dfs(root, k);
return result;
}
}