每日一道面试题-03

问题:给定一个二叉搜索树(BST),找到树中第 K 小的节点。

思路:二叉搜索树:左子树小于节点,右子树大于节点。

class BSTNode {
    int date;
    BSTNode left;
    BSTNode right;
}
public class FinkKthFromBST {
    public BSTNode bst = null;
    public void finkKthFromBST(BSTNode bst, int k){
        if (bst != null) {
            if (bst.left != null) {
                finkKthFromBST(bst.left,k);
            }
            k--;
            if (k == 0) {
                bst = bst;
                return;
            }
            if (bst.right != null) {
                finkKthFromBST(bst.right,k);
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/heyjia/p/11327894.html
今日推荐