zoukankan      html  css  js  c++  java
  • 173. Binary Search Tree Iterator

    package LeetCode_173
    
    /**
     * 173. Binary Search Tree Iterator
     * https://leetcode.com/problems/binary-search-tree-iterator/description/
     *
     * 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.
    
    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.
     * */
    
    class TreeNode(var `val`: Int) {
        var left: TreeNode? = null
        var right: TreeNode? = null
    }
    
    /*
    * solution: in-order + ArrayList
    * */
    class BSTIterator(root: TreeNode?) {
    
        val list = ArrayList<Int>()
    
        init {
            inorder(root)
        }
    
        //inorder:left->root->right, save sorted numbers in list,is Ascending
        private fun inorder(root:TreeNode?){
            if (root==null){
                return
            }
            inorder(root.left)
            list.add(root.`val`)
            inorder(root.right)
        }
    
        /** @return the next smallest number */
        fun next(): Int {
            return list.removeAt(0)
        }
    
        /** @return whether we have a next smallest number */
        fun hasNext(): Boolean {
            return list.isNotEmpty()
        }
    
    }
    
    /**
     * Your BSTIterator object will be instantiated and called as such:
     * var obj = BSTIterator(root)
     * var param_1 = obj.next()
     * var param_2 = obj.hasNext()
     */
  • 相关阅读:
    Redhat 7使用CentOS 7的Yum网络源
    指定YUM安装包的体系结构或版本
    CURL常用命令
    VIM技巧之去除代码行号并缩进代码
    VIM 中鼠标选择不选中行号
    linux服务器性能优化
    阻塞,非阻塞,同步,异步
    WEB三层架构与MVC
    mvc与三层结构
    Centos环境下Tomcat启动缓慢
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13681867.html
Copyright © 2011-2022 走看看