栈和队列_leetcode145-二叉树后序遍历非递归

class Solution(object):
def postorderTraversal(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:
stack.append(Command("print", com.node))
if com.node.right:
stack.append(Command("go",com.node.right))
if com.node.left:
stack.append(Command("go",com.node.left))


return res
原文地址:https://www.cnblogs.com/lux-ace/p/10547420.html