給定乙個二叉搜尋樹,編寫乙個函式kthsmallest
來查詢其中第k個最小的元素。
說明:
你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。
示例 1:
輸入:root = [3,1,4,null,2], k = 1示例 2:3/ \
1 4
\ 2輸出:1
輸入: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...