二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
思路
本来觉得这题挺难,直到晚上吃饭的时候突然发现输入的都是二叉排序树,那这题就太简单了,先用中序遍历二叉树,得到一个数组,然后返回数组中的第k个元素就行了
代码
class Solution {
public:
vector<int> a;
void inorder(TreeNode* root){
if(root!=NULL){
inorder(root->left);
a.push_back(root->val);
inorder(root->right);
}
}
int kthSmallest(TreeNode* root, int k) {
inorder(root);
return a[k-1];
}
};