二叉搜索树的第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;
    }
}
posted @ 2022-01-13 12:33  言思宁  阅读(23)  评论(0编辑  收藏  举报