173. 二叉搜索树迭代器(二叉搜索树+栈)
生活随笔
收集整理的這篇文章主要介紹了
173. 二叉搜索树迭代器(二叉搜索树+栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現一個二叉搜索樹迭代器。你將使用二叉搜索樹的根節點初始化迭代器。
調用 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
提示:
next() 和 hasNext() 操作的時間復雜度是 O(1),并使用 O(h) 內存,其中 h 是樹的高度。
你可以假設 next() 調用總是有效的,也就是說,當調用 next() 時,BST 中至少存在一個下一個最小的數。
本質上是二叉搜索樹和棧的應用。二叉搜索樹右子樹的數一定大于父節點的數,左子樹一定小于父節點的數。
代碼如下:
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的173. 二叉搜索树迭代器(二叉搜索树+栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 82. 删除排序链表中的重复元素 II(
- 下一篇: Hyperset(排序+二分)