栈和队列_leetcode94

class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype
"""

res = []
self.order(root, res)
return res


def order(self, root, res):
if root:

self.order(root.left, res)
res.append(root.val)
self.order(root.right, res)


class Solution2(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype
"""

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))
stack.append(Command("print", com.node))
if com.node.left:
stack.append(Command("go", com.node.left))

return res
posted @ 2019-03-17 15:58  AceKo  阅读(123)  评论(0编辑  收藏  举报