一样的递归,但是直接用python3写递归会报递归次数过多的错误,可能是python程序的一种自我保护,因为递归过多会占用过大内容,只要在前面设置下系统的递归最大次数就可以了。
import sys
sys.setrecursionlimit(100000) #设置递归深度
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def inorderTraversal(self , root: TreeNode) -> list:
# write code here
treelist = []
self.midtra(root,treelist)
return treelist
def midtra(self , root , treelist):
if root:
self.midtra(root.left,treelist)
treelist.append(root.val)
self.midtra(root.right , treelist)
else:
return None
root = TreeNode(1)
root.left = TreeNode(2)
root.left.right = TreeNode(3)
print(Solution().inorderTraversal(root))