一样的递归,但是直接用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))