LeetCode.230. Kth Smallest Element in a BST

https://leetcode.com/problems/kth-smallest-element-in-a-bst/

这道题让我们找到第k个最小的数,在BST中。

这是我在讨论区的解释:https://leetcode.com/problems/kth-smallest-element-in-a-bst/discuss/196349/Easy-Understand-Java-Solution-Beat-100

其实就是BST可以按从小到大顺序遍历的嘛,最最最左侧的肯定是最小的,然后是自己,然后是右侧。

所以有一个count计数就好了。

class Solution {
    
    int fuck = 0;
    int val = 0;
    
    public int kthSmallest(TreeNode root, int k) {
        put(root, k);
        return val;
    }
    
    public void put(TreeNode node, int k) {
        if (node.left != null) {
            put(node.left, k);
        }
        fuck++;
        if (fuck == k) { // once fuck equals k, record the node value, and return.
            val = node.val;
            return;
        }
        if (node.right != null) {
            put(node.right, k);
        }
    }
}
点赞