二叉树的先序中序后序遍历
时间: 2023-11-20 20:59:34 浏览: 107
二叉树的前序中序后序遍历
二叉树的遍历分为三种:先序遍历、中序遍历和后序遍历。其中,先序遍历指的是先访问根节点,再访问左子树,最后访问右子树;中序遍历指的是先访问左子树,再访问根节点,最后访问右子树;后序遍历指的是先访问左子树,再访问右子树,最后访问根节点。下面是二叉树三种遍历的递归实现:
```python
# 定义二叉树结构体
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 先序遍历
def preorderTraversal(root: TreeNode) -> List[int]:
res = []
def dfs(root):
if not root:
return
res.append(root.val)
dfs(root.left)
dfs(root.right)
dfs(root)
return res
# 中序遍历
def inorderTraversal(root: TreeNode) -> List[int]:
res = []
def dfs(root):
if not root:
return
dfs(root.left)
res.append(root.val)
dfs(root.right)
dfs(root)
return res
# 后序遍历
def postorderTraversal(root: TreeNode) -> List[int]:
res = []
def dfs(root):
if not root:
return
dfs(root.left)
dfs(root.right)
res.append(root.val)
dfs(root)
return res
```
阅读全文