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
Analysis:
Note, in order traverse a BST will get a sorted array from smallest to biggest.
You may assume k is always valid, 1 ≤ k ≤ BST's total elements
int visit(TreeNode* root, int k, int &i){ if(!root) return 0; int res = visit(root->left,k,i); if(i == k) return res; if(++i == k) return root->val; return visit(root->right,k,i); } int kthSmallest(TreeNode* root, int k) { int i=0; return visit(root,k,i); }