二叉排序樹 11 二叉查詢樹中搜尋區間

2021-08-18 13:43:42 字數 746 閱讀 7111

給定兩個值 k1 和 k2(k1 < k2)和乙個二叉查詢樹的根節點。找到樹中所有值在 k1 到 k2 範圍內的節點。即列印所有x (k1 <= x <= k2) 其中 x 是二叉查詢樹的中的節點值。返回所有公升序的節點值。

您在真實的面試中是否遇到過這個題?

yes

樣例如果有 k1 =10和 k2 =22, 你的程式應該返回[12, 20, 22].

20

/ \

8 22

/ \4 12

注意:search函式中的vector&result一定要用&,否則主函式中返回的result將為空

最佳答案:

class solution 

else

}return res;

}};

遞迴答案:

因為二叉查詢樹的中序遍歷即為從小到大的有序序列。所以可按照中序遍歷遞迴。
class solution 

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

};

錯誤答案:

class solution 

};

二叉排序樹 二叉搜尋樹 二叉查詢樹

特點 結構體定義struct node 建樹 建二叉排序樹 void create node root,int t else if t root data create root lc,t else create root rc,t 前序遍歷 層序 字典序 int flag int pre 1001...

二叉排序樹(二叉查詢樹 二叉搜尋樹)

include include typedef struct node node node createnode int value void addnode node root,int value else else void middleorder node node middleoder no...

手寫二叉排序樹(二叉查詢樹 二叉搜尋樹)

在二叉排序樹中,每個根節點只能有左右兩個子節點,左子節點比根節點小,右子節點比根節點大 treeset中不允許出現相同元素。一些場景下,如果子節點和根節點相同會將子節點放到根節點的右邊 二叉搜尋樹 public class binarysearchtreeextends comparable els...