JZ-062-二叉查詢樹的第 K 個結點

雄獅虎豹發表於2022-02-23

二叉查詢樹的第 K 個結點

題目描述

給定一棵二叉搜尋樹,請找出其中的第k小的結點。

題目連結: 二叉查詢樹的第 K 個結點

程式碼

/**
 * 標題:二叉查詢樹的第 K 個結點
 * 題目描述
 * 給定一棵二叉搜尋樹,請找出其中的第k小的結點。
 * 題目連結:
 * https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?tpId=13&&tqId=11215&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 */
public class Jz62 {

    private TreeNode result;
    private int cnt;

    /**
     * 中序遍歷
     *
     * @param pRoot
     * @param k
     * @return
     */
    TreeNode kthNode(TreeNode pRoot, int k) {
        inOrder(pRoot, k);
        return result;
    }

    private void inOrder(TreeNode root, int k) {
        if (root == null || cnt >= k) {
            return;
        }
        inOrder(root.left, k);
        cnt++;
        if (cnt == k) {
            result = root;
        }
        inOrder(root.right, k);
    }

    public static void main(String[] args) {

    }
}
【每日寄語】 輕鬆時記得努力,忙碌時別忘了夢想。

相關文章