用递归实现二叉树的前序,中序,后序遍历的代码
时间: 2023-08-04 16:27:42 浏览: 89
好的,下面是递归实现二叉树的前序、中序、后序遍历的代码:
```python
# 定义二叉树结点类
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 前序遍历:根 - 左 - 右
def preorderTraversal(root):
if not root:
return []
res = [root.val]
res += preorderTraversal(root.left)
res += preorderTraversal(root.right)
return res
# 中序遍历:左 - 根 - 右
def inorderTraversal(root):
if not root:
return []
res = inorderTraversal(root.left)
res += [root.val]
res += inorderTraversal(root.right)
return res
# 后序遍历:左 - 右 - 根
def postorderTraversal(root):
if not root:
return []
res = postorderTraversal(root.left)
res += postorderTraversal(root.right)
res += [root.val]
return res
```
以上代码中,我们定义了一个 `TreeNode` 类来表示二叉树的结点,然后分别实现了前序遍历、中序遍历和后序遍历的函数,其中每个函数都是用递归来实现的。
阅读全文