leetcode 樹 二叉搜尋樹中第K小的元素

2021-10-04 19:14:07 字數 1063 閱讀 4785

給定乙個二叉搜尋樹,編寫乙個函式kthsmallest來查詢其中第k個最小的元素。

說明:

你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。

示例 1:

輸入:root = [3,1,4,null,2], k = 1

3/ \

1 4

\  2輸出:1

示例 2:

輸入:root = [5,3,6,2,4,null,null,1], k = 3

5/ \

3 6

/ \2 4

/ 1輸出:3

高階:

如果二叉搜尋樹經常被修改(插入/刪除操作)並且你需要頻繁地查詢第 k 小的值,你將如何優化kthsmallest函式?

思路:

二叉搜尋樹特點:二叉搜尋樹相信大家都知道它的特徵是,左子樹的任意結點值《根結點值《右子樹結點值,因此採用中序遍歷可以得到乙個有序列表; 題目只需要求第k小的只,那麼直接遍歷到第k個就可以停止遍歷了。

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

private void centersearch(listres, treenode root, int k)

centersearch(res, root.left, k);

res.add(root.val);

centersearch(res, root.right, k);

}}

leetcode 樹 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3輸出 true示例 2 輸入 5 1 4 3 6輸出 false解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 思路 可以採用中序遍歷,放在陣列...

LeetCode 二叉搜尋樹中的搜尋

給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。例如,給定二叉搜尋樹 4 2 7 1 3 和值 2 你應該返回如下子樹 2 1 3 在上述示例中,如果要找的值是 5,但因為沒有節點值為 5,我們應該返回 ...

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...