zoukankan      html  css  js  c++  java
  • 剑指offer---二叉搜索树的第K个节点

    二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树

    很自然想到中序遍历 我用的递归的方法

    class Solution 
    {
    
    private:
        void ZhongXuBianLi(vector<TreeNode*> &A,TreeNode* root)
        {
            if (root == NULL) return;
            ZhongXuBianLi(A, root->left);
            A.push_back(root);
            ZhongXuBianLi(A, root->right);
        }
    public:
        TreeNode* KthNode(TreeNode* pRoot, int k)
        {
            if ((pRoot == NULL) || (k <= 0)) return NULL;
            vector<TreeNode*> re;
            ZhongXuBianLi(re, pRoot);
            if (k > re.size())    return NULL;
            else return re[k - 1];
    
    
    
        }
    
    
    };
  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    C++生产和使用的临时对象
    RecyclerView0基于使用
    Docker创建MySQL集装箱
  • 原文地址:https://www.cnblogs.com/159269lzm/p/7271804.html
Copyright © 2011-2022 走看看