第一种方法:递归
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
#递归
ans = []
def dfs(root):
if not root:
return
dfs(root.left)
ans.append(root.val)
dfs(root.right)
dfs(root)
return ans
第二种方法:迭代法
左孩子入栈
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
#方法二 迭代法 通过栈 用seem判断是否访问过该节点
ans = []
if not root:
return ans
stack = [root]
seem = set()
while stack:
while stack[-1].left and stack[-1].left not in se