zoukankan      html  css  js  c++  java
  • 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / 3 7 / / 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。

    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };
    */
    class Solution {
    public:
        TreeNode* KthNode(TreeNode* pRoot, int k)
        {
    
       //中序递归
        int count = 0;
        
            if(count > k || pRoot == NULL)
                return NULL;
            TreeNode* p = pRoot;
            stack<TreeNode*> LDRStack;
            TreeNode* kthNode;
            while(p != NULL || !LDRStack.empty()){
                while(p != NULL){
                    LDRStack.push(p);
                    p = p->left;
                }
                TreeNode* node = LDRStack.top();
                LDRStack.pop();
                count++;
                if(count == k){
                    kthNode = node;
                }
                p = node->right;
            }
            return kthNode;
        }
    
        
    };
    

      

  • 相关阅读:
    supervisor
    ULB
    RAM
    sshpass和做软链接
    阿里RDS
    阿里EMR部署
    kafka原理和操作
    maven---settings.xml配置
    maven项目导出依赖的Jar包以及项目本身以jar包形式导出详细教程
    Maven中settings.xml的配置项说明精讲
  • 原文地址:https://www.cnblogs.com/Czc963239044/p/6978701.html
Copyright © 2011-2022 走看看