zoukankan      html  css  js  c++  java
  • 二叉搜索树的第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 };
  • 相关阅读:
    1
    iulg
    实验10
    作业5 指针应用
    作业4 函数应用
    实验9 指针
    实验 8 数组2
    实验7
    实验6 数组1
    实验5
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/6961050.html
Copyright © 2011-2022 走看看