LeetCode 230. Kth Smallest Element in a BST

 1 class Solution {
 2 public:
 3     int rank;
 4     int result;
 5     
 6     void help(TreeNode* root, int k){
 7         if(!root) return;
 8         
 9         help(root->left, k);
10         if(++rank == k){
11             result = root->val;
12             return;
13         }
14         help(root->right, k);
15     }
16     int kthSmallest(TreeNode* root, int k) {
17         rank = 0;
18         help(root, k);
19         return result;
20     }
21 };

rank即为当前root在整棵树中的顺序,表示当前root->val为第rank小的数(是指++rank后的rank)。

还有用stack实现的算法,未细看,留个坑。

hint里的未优化,留坑。

posted @ 2016-02-24 16:04  co0oder  阅读(151)  评论(0编辑  收藏  举报