LeetCode230——二叉搜索树中第K小的元素
我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/description/
题目描述:
知识点:二叉搜索树、递归
思路:递归地寻找二叉搜索树中第K小的元素
时间复杂度是O(kN),其中N为二叉搜索树中的节点个数。空间复杂度是O(k)。
JAVA代码:
public class Solution {
public int kthSmallest(TreeNode root, int k) {
if(k == 1) {
TreeNode cur = root;
while(cur.left != null) {
cur = cur.left;
}
return cur.val;
}
root = delMin(root);
return kthSmallest(root, k - 1);
}
private TreeNode delMin(TreeNode node) {
if(node.left == null) {
TreeNode tempNode = node.right;
return tempNode;
}
node.left = delMin(node.left);
return node;
}
}
LeetCode解题报告: