二叉搜索树中第k小的元素
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。
class Solution {
public:int dfs(TreeNode* node, int& k){if(node==nullptr) return -1; // 若没找到返回-1// 遍历左子树int left_val = dfs(node->left, k);if(left_val!=-1) return left_val;// 检查当前节点if(--k == 0) return node->val;// 遍历右子树return dfs(node->right, k);}int kthSmallest(TreeNode* root, int k) {return dfs(root, k);}
};