LintCode 11 二叉查詢樹中搜尋區間

2021-07-27 02:13:31 字數 592 閱讀 5699

給定兩個值 k1 和 k2(k1 < k2)和乙個二叉查詢樹的根節點。找到樹中所有值在 k1 到 k2 範圍內的節點。即列印所有x (k1 <=x <= k2) 其中 x 是二叉查詢樹的中的節點值。返回所有公升序的節點值。
如果有 k1 = 10 和 k2 = 22, 你的程式應該返回 [12, 20, 22].

20/ \

8 22

/ \4 12

因為要求的是搜尋區間,而不是固定的值,查詢跟普通的二叉樹查詢差不多,只是需要限定範圍。
vector

searchrange(treenode* root, int k1, int k2)

stack

s; treenode *p = root;

while (p != null || !s.empty()) else

}if (!s.empty())

if (p->val > k2) else }}

}

LintCode 11 二叉查詢樹中搜尋區間

給定兩個值 k1 和 k2 k1 k2 和乙個二叉查詢樹的根節點。找到樹中所有值在 k1 到 k2 範圍內的節點。即列印所有x k1 x k2 其中 x 是二叉查詢樹的中的節點值。返回所有公升序的節點值。樣例 如果有 k1 10和 k2 22,你的程式應該返回 12,20,22 20 8 22 4 ...

lintcode 驗證二叉查詢樹

題目 給定乙個二叉樹,判斷它是否是合法的二叉查詢樹 bst 一棵bst定義為 節點的左子樹中的值要嚴格小於該節點的值。節點的右子樹中的值要嚴格大於該節點的值。左右子樹也必須是二叉查詢樹。乙個節點的樹也是二叉查詢樹。解題 二叉查詢樹中序遍歷是公升序,可以中序遍歷後,根據是否公升序判斷是否是二叉查詢樹,...

lintcode 第11題二叉查詢樹中搜尋區間

要求 給定兩個值 k1 和 k2 k1 k2 和乙個二叉查詢樹的根節點。找到樹中所有值在 k1 到 k2 範圍內的節點。即列印所有x k1 x k2 其中 x 是二叉查詢樹的中的節點值。返回所有公升序的節點值。樣例如果有 k1 10 和 k2 22,你的程式應該返回 12,20,22 20 8 22...