给定一棵二叉搜索树,请找出其中的第 kk 小的结点。
你可以假设树和 kk 都存在,并且 1≤k≤1≤k≤ 树的总结点数。
数据范围
树中节点数量 [1,500][1,500]。
样例
输入:root = [2, 1, 3, null, null, null, null] ,k = 3
2
/ \
1 3
输出:3
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<TreeNode*> res;
void P(TreeNode*root)
{
if(!root)return ;
P(root->left);
res.push_back(root);
P(root->right);
}
TreeNode* kthNode(TreeNode* root, int k) {
P(root);
return res[k-1];
}
};