Kth Smallest Element in a BST

原创 2015年11月20日 16:29:45
  1. 问题

    Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.

    Note:
    You may assume k is always valid, 1 ≤ k ≤ BST's total elements.

  2. 解答
    class Solution1 {
    public:
         
        int kthSmallest(TreeNode* root, int k) {
            inorderTraversal(root); 
             return res[k-1];
        }
        
      void inorderTraversal(TreeNode* root) 
        {
            if(root)
            {
                
                inorderTraversal(root->left);
                res.push_back(root->val);
                inorderTraversal(root->right);
            }
         //   return res;
        }
        
    private:
         vector<int> res;
    };
    
    class Solution2 {
    public:
         
        int kthSmallest(TreeNode* root, int k) 
        {
             vector<int> res;
             int sum=0;
             vector<TreeNode *> f1;
             
             while(root)
             {
                 f1.push_back(root);
                 root=root->left;
             }
             TreeNode *temp;
             while(!f1.empty() )
             {
                temp=f1.back();
                 
                 
                res.push_back(temp->val);
                sum++;
                if(sum==k) return temp->val;
                f1.pop_back();
                     
                  
                 if(temp->right!=NULL)
                 {
                     TreeNode *f=temp->right;
                     while(f)
                     {
                           f1.push_back(f);
                           f=f->left;
                     }
                 }
               
             }
        }
    };
    
    class Solution {
    public:
         
        int kthSmallest(TreeNode* root, int k) 
        {
            int sum=0;
            stack<TreeNode *> f1;
            // inorder
            while(root || !f1.empty())
            {
                while(root)
                {
                    f1.push(root);
                    root=root->left;
                }
                if(!f1.empty())
                {
                    TreeNode *temp;
                    temp=f1.top();
                    sum++;
                    if(sum==k) return temp->val;
                    f1.pop();
                    
                    if(temp->right!=NULL)
                    {
                        root=temp->right;
                    }
                }
                
                
            }
        }
        
    };


版权声明:本文为博主原创文章,未经博主允许不得转载。

230. Kth Smallest Element in a BST

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. ...

leetcode-230-Kth Smallest Element in a BST

Kth Smallest Element in a BST   Given a binary search tree, write a function kthSmallest to ...

[leetcode] Kth Smallest Element in a BST

题目链接在此 Given a binary search tree, write a function kthSmallest to find the kth smallest elemen...

leetcode 230. Kth Smallest Element in a BST-递归|非递归

原题链接:230. Kth Smallest Element in a BST 【思路-Java、Python】——递归实现 我们知道二分查找数(BST)的性质——任何一个节点的值均大于左子树的任意节...

<LeetCode OJ> 230. Kth Smallest Element in a BST

230. Kth Smallest Element in a BST My Submissions Question Total Accepted: 32753 Total Submissio...

【LEETCODE】230-Kth Smallest Element in a BST

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. No...

LeetCode - 230. Kth Smallest Element in a BST

这道题目需要利用BST的性质,就是如果对BST进行中序遍历的话,得到的序列的一定是sorted,所以一开始使用了一个ArrayList存储访问的元素,然后返回第k - 1个。但是这种方法不太好,更好的...

Leetcode 230. Kth Smallest Element in a BST (Medium) (cpp)

Leetcode 230. Kth Smallest Element in a BST (Medium) (cpp)
  • Niko_Ke
  • Niko_Ke
  • 2016年08月23日 11:17
  • 293

LeetCode 230. Kth Smallest Element in a BST 解题报告

LeetCode 230. Kth Smallest Element in a BST 解题报告

[C++]Kth Smallest Element in a BST 在一个二叉排序树中找第k小的元素

leetcode 原题:https://leetcode.com/problems/kth-smallest-element-in-a-bst/ Given a binary sea...
  • lyy_hit
  • lyy_hit
  • 2015年08月29日 22:12
  • 315
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Kth Smallest Element in a BST
举报原因:
原因补充:

(最多只允许输入30个字)