zoukankan      html  css  js  c++  java
  • 栈和队列_leetcode144-二叉树前序遍历非递归

    # Definition for a binary tree node.
    # class TreeNode(object):
    # def __init__(self, x):
    # self.val = x
    # self.left = None
    # self.right = None

    class Solution(object):
    def preorderTraversal(self, root):
    """
    :type root: TreeNode
    :rtype: List[int]
    """

    class Command(object):
    def __init__(self,com,node):
    self.com = com
    self.node = node


    res = []
    stack = []

    if not root:
    return res
    stack.append(Command("go",root))

    while stack:
    com = stack.pop()

    if com.com == "print":
    res.append(com.node.val)
    else:
    if com.node.right:
    stack.append(Command("go",com.node.right))
    if com.node.left:
    stack.append(Command("go",com.node.left))
    stack.append(Command("print",com.node))

    return res
  • 相关阅读:
    线程与进程
    Java集合框架体系JCF
    Java异常
    抽象,接口和Object类
    Java三大特性
    面向对象
    数组
    Java 控制结构与方法
    数据类型与变量
    Java基础之入门
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10547393.html
Copyright © 2011-2022 走看看