用递归的方式实现最简单,但在python中有最大递归数的限制,因此需要加上限制条件,否则会报错:

import sys
class Solution:
    def inorderTraversal(self , root: TreeNode) -> List[int]:
        # write code here
        res = []
        if root is None:
            return res
        # 添加最大递归限制
        sys.setrecursionlimit(1500)
        if root.left is not None:
            res += self.inorderTraversal(root.left)
        res += [root.val]
        if root.right is not None:
            res += self.inorderTraversal(root.right)
        return res

用栈的方式实现