题解 | #二叉树的中序遍历# #DFS会超时
二叉树的中序遍历
https://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d
#coding:utf-8
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def __init__(self):
self.path = []
self.stack = []
def inorderTraversal(self , root ):
# write code here
#self.dfs(root)
self.tra_stack(root)
print ("Path: ", self.path)
return self.path
def tra_stack(self, node):
if node == None:
return
while node != None or len(self.stack) > 0:
if node != None:
self.stack.append(node)
node = node.left
else:
node = self.stack.pop()
self.path.append(node.val)
node = node.right
return
def dfs(self, node):
if node == None:
return
self.dfs(node.left)
self.path.append(node.val)
self.dfs(node.right)
return

