AcWing 70 .二叉搜索树的第k个结点(剑指offer)

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

你可以假设树和k都存在,并且1≤k≤树的总结点数。

样例
输入:root = [2, 1, 3, null, null, null, null] ,k = 3

2

/
1 3

输出:3

class Solution {
public:
    TreeNode* ans;
    TreeNode* kthNode(TreeNode* root, int k) {
        if(!root) return root;
        dfs(root,k);
        return ans;
    }
    
    void dfs(TreeNode* root,int &k) {
        if(!root) return;
        dfs(root -> left,k);
        k--;
        if(!k) ans = root;
        dfs(root -> right,k);
    }
};
发布了843 篇原创文章 · 获赞 28 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/tomjobs/article/details/104980596