leecode 94. 二叉树的中序遍历
94. Binary Tree Inorder Traversal
Example:
Input: [1,null,2,3]
1
\
2
/
3
Output: [1,3,2]
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def inorderTraversal(self, root: TreeNode) -> List[int]:
res,stack=[],[(1,root)]
while stack:
p=stack.pop()
if not p[1]:
continue
stack.extend([(1,p[1].right),(0,p[1]),(1,p[1].left)]) if p[0]!=0 else res.append(p[1].val)
return res
#递归
def inorderTraversal(self, root: TreeNode) -> List[int]:
if root is None:
return []
return self.inorderTraversal(root.left) + [root.val] + self.inorderTraversal(root.right)