173.二叉搜索树迭代器
2020-05-29
二叉搜索树迭代器
实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。
调用 next() 将返回二叉搜索树中的下一个最小的数。
题解:
思路1:二叉树的中序遍历
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root */ var BSTIterator = function (root) { this.arr = []; this.index = 0; let handler = (node) => { if(!node) return; handler(node.left); this.arr.push(node.val); handler(node.right); } handler(root); }; /** * @return the next smallest number * @return {number} */ BSTIterator.prototype.next = function () { return this.arr[this.index++]; }; /** * @return whether we have a next smallest number * @return {boolean} */ BSTIterator.prototype.hasNext = function () { return this.index <= this.arr.length; }; /** * Your BSTIterator object will be instantiated and called as such: * var obj = new BSTIterator(root) * var param_1 = obj.next() * var param_2 = obj.hasNext() */