Problem: 230. 二叉搜索树中第 K 小的元素
解析
dfs递归法
简单易得,中序遍历二叉搜索树,得到的序列是递增的。所以只需要找到第 k 个元素即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { private: int res; int index = 1;
public: int kthSmallest(TreeNode *root, int k) { Inorder(root, k); return res; } void Inorder(TreeNode *node, int k) { if(node==nullptr){ return; } Inorder(node->left, k); if (index++ == k) { res = node->val; return; } Inorder(node->right, k); } };
|