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;
        }
    
        
    };
    

      

  • 相关阅读:
    idea安装破解
    项目中邮件发送
    (转)四种复制文件的效率高低
    备份
    关于时间
    转 累加含小数点的数据:parseFloat、toFixed等
    转 Java将PDF转换成图片
    (转)JAVA实现SFTP实例
    获取浏览器参数
    js 中日期转换
  • 原文地址:https://www.cnblogs.com/Czc963239044/p/6978701.html
Copyright © 2011-2022 走看看