采用中序遍历方法,代码如下:
int count = 0;
int values = 0;
//中序遍历
void dfs(struct TreeNode* root, int k){
if (root == NULL) return NULL;
dfs(root -> left,k);
count++;
if(count == k){
values = root -> val;
return;
}
dfs(root -> right, k);
}
int kthSmallest(struct TreeNode* root, int k){
count = 0;
values = 0;
dfs(root, k);
return values;
}
提交结果如下:
如有疑问欢迎大家讨论。