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


    题目描述

    给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / 3 7 / / 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
     1 /*
     2 struct TreeNode {
     3     int val;
     4     struct TreeNode *left;
     5     struct TreeNode *right;
     6     TreeNode(int x) :
     7             val(x), left(NULL), right(NULL) {
     8     }
     9 };
    10 */
    11 class Solution {
    12 public:
    13    vector<TreeNode*> vet;
    14     TreeNode* KthNode(TreeNode* pRoot, int k)
    15     {
    16         midsearch(pRoot);
    17         if (k<1 || k>vet.size())
    18             return NULL;
    19         else
    20         {
    21             return vet[k - 1];
    22         }
    23     }
    24     void midsearch(TreeNode * root)
    25     {
    26 
    27         if (root == NULL)
    28             return;
    29         if (root != NULL)
    30         {
    31             midsearch(root->left);
    32             vet.push_back(root);
    33             midsearch(root->right);
    34         }
    35     }
    36     
    37 };
  • 相关阅读:
    无监督学习
    监督学习
    cmd
    oj1026
    oj1025
    使用虚函数的不同模式
    hdu1166:敌兵布阵(树状数组或线段树)
    传纸条(动态规划)
    SDUT 1266 出栈序列统计(卡特兰数)
    HDU 5063 Operation the Sequence
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/6961050.html
Copyright © 2020-2023  润新知