leetcode

package
v0.0.0-...-93adea0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2024 License: MIT Imports: 2 Imported by: 0

README

173. Binary Search Tree Iterator

题目

Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.

Calling next() will return the next smallest number in the BST.

Example:

BSTIterator iterator = new BSTIterator(root);
iterator.next();    // return 3
iterator.next();    // return 7
iterator.hasNext(); // return true
iterator.next();    // return 9
iterator.hasNext(); // return true
iterator.next();    // return 15
iterator.hasNext(); // return true
iterator.next();    // return 20
iterator.hasNext(); // return false

Note:

  • next() and hasNext() should run in average O(1) time and uses O(h) memory, where h is the height of the tree.
  • You may assume that next() call will always be valid, that is, there will be at least a next smallest number in the BST when next() is called.

题目大意

实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。

解题思路

  • 用优先队列解决即可

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BSTIterator

type BSTIterator struct {
	// contains filtered or unexported fields
}

BSTIterator define

func Constructor173

func Constructor173(root *TreeNode) BSTIterator

Constructor173 define

func (*BSTIterator) HasNext

func (this *BSTIterator) HasNext() bool

* @return whether we have a next smallest number

func (*BSTIterator) Next

func (this *BSTIterator) Next() int

* @return the next smallest number

type PriorityQueueOfInt

type PriorityQueueOfInt []int

*

  • Your BSTIterator object will be instantiated and called as such:
  • obj := Constructor(root);
  • param_1 := obj.Next();
  • param_2 := obj.HasNext();

func (PriorityQueueOfInt) Len

func (pq PriorityQueueOfInt) Len() int

func (PriorityQueueOfInt) Less

func (pq PriorityQueueOfInt) Less(i, j int) bool

func (*PriorityQueueOfInt) Pop

func (pq *PriorityQueueOfInt) Pop() interface{}

func (*PriorityQueueOfInt) Push

func (pq *PriorityQueueOfInt) Push(x interface{})

func (PriorityQueueOfInt) Swap

func (pq PriorityQueueOfInt) Swap(i, j int)

type TreeNode

type TreeNode = structures.TreeNode

TreeNode define

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL