剑指Offer54.二叉搜索树的第K大节点(搜索二叉树的特点)(非递归)

链接:

https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/

搜索二叉树的特点:

1.左节点比根节点小,右节点比根节点大
2.它的中序遍历是有序的,从小到大

描述:

剑指Offer54.二叉搜索树的第K大节点(搜索二叉树的特点)(非递归)

示例:

剑指Offer54.二叉搜索树的第K大节点(搜索二叉树的特点)(非递归)

限制:

剑指Offer54.二叉搜索树的第K大节点(搜索二叉树的特点)(非递归)

则一定有结果

代码:


class Solution {
public:
    int kthLargest(TreeNode* root, int k) {
        stack<TreeNode*> stk;
        while(root||!stk.empty()){
            while(root){
                stk.push(root);
                root=root->right;
            }
            root=stk.top();
            stk.pop();
            k--;
            if(k==0) return root->val;
            root=root->left;
        }
        return -1;
    }
};
上一篇:单调栈问题详细笔记


下一篇:第14届(2021)CISCN初赛WP(2)——Glass