zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。

    题目:

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

    思路:

    二叉搜索树使用中序,然后弹出栈底。

    程序:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class BSTIterator:
    
        def __init__(self, root: TreeNode):
            self.result = []
            if root:
                self.inorder(root)
    
        def inorder(self, node):
            if node.left:
                self.inorder(node.left)
            self.result.append(node.val)
            if node.right:
                self.inorder(node.right)
    
        def next(self) -> int:
            """
            @return the next smallest number
            """
            if self.result:
                return self.result.pop(0)
    
        def hasNext(self) -> bool:
            """
            @return whether we have a next smallest number
            """
            if len(self.result) > 0:
                return True
            else:
                return False
    
    # Your BSTIterator object will be instantiated and called as such:
    # obj = BSTIterator(root)
    # param_1 = obj.next()
    # param_2 = obj.hasNext()
    

      

  • 相关阅读:
    spring注入原型bean
    按时间间隔查询
    Qconf安装文档
    HttpEnum
    MyIfmHttpClient
    enum StatCode
    Linux修改war包中文件
    maven settings.xml windows
    maven settings.xml linux
    docker报错
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12898979.html
Copyright © 2011-2022 走看看