這篇文章給大家介紹二叉搜索樹迭代器指的是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創新互聯專注于企業成都全網營銷、網站重做改版、萬載網站定制設計、自適應品牌網站建設、H5高端網站建設、商城網站開發、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為萬載等各大城市提供網站開發制作服務。
實現一個二叉搜索樹迭代器。你將使用二叉搜索樹的根節點初始化迭代器。
調用 next()
將返回二叉搜索樹中的下一個最小的數。
示例:
BSTIterator iterator = new BSTIterator(root); iterator.next();
// 返回 3 iterator.next();
// 返回 7 iterator.hasNext();
// 返回 true iterator.next();
// 返回 9 iterator.hasNext();
// 返回 true iterator.next();
// 返回 15 iterator.hasNext();
// 返回 true iterator.next();
// 返回 20 iterator.hasNext();
// 返回 false
答案:
1class BSTIterator {
2
3 private Stack<TreeNode> stack = new Stack<TreeNode>();
4
5 public BSTIterator(TreeNode root) {
6 pushAll(root);
7 }
8
9 public boolean hasNext() {
10 return !stack.isEmpty();
11 }
12
13 public int next() {
14 TreeNode tmpNode = stack.pop();
15 pushAll(tmpNode.right);
16 return tmpNode.val;
17 }
18
19 private void pushAll(TreeNode node) {
20 for (; node != null; stack.push(node), node = node.left) ;
21 }
22}
解析:
如果對二叉樹的dfs(深度優先搜索)比較熟悉的話,這題很容易理解。
關于二叉搜索樹迭代器指的是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當前標題:二叉搜索樹迭代器指的是什么
當前鏈接:http://vcdvsql.cn/article22/pdhdcc.html
成都網站建設公司_創新互聯,為您提供建站公司、品牌網站設計、小程序開發、定制網站、網站改版、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯