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

题目描述

给定一棵二叉搜索树,请找出其中第k大的节点。

在这里插入图片描述
限制:

1 ≤ k ≤ 二叉搜索树元素个数

题解
dfs
因为是二叉搜索树,所以先递归右子树,递归回溯的过程中计数,得到第k大的节点

class Solution {
    TreeNode ans;
    int cnt;
    public int kthLargest(TreeNode root, int k) {
        dfs(root, k);
        return ans.val;
    }
    public void dfs(TreeNode root,int k){
        if(root == null || cnt >= k)return ;
        dfs(root.right, k);
        cnt++;
        if(cnt == k)
            ans = root;
        dfs(root.left,k);
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页