二叉树的三种遍历完整代码
时间: 2024-11-29 15:10:28 浏览: 3
js代码-二叉树广度优先遍历
二叉树的遍历主要有三种方法:前序遍历、中序遍历和后序遍历。以下是基于递归的Python代码示例:
1. **前序遍历 (根-左-右)**:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def preorder_traversal(root):
if root is not None:
print(root.val) # 先访问根节点
preorder_traversal(root.left) # 再遍历左子树
preorder_traversal(root.right) # 最后遍历右子树
```
2. **中序遍历 (左-根-右)**:
```python
def inorder_traversal(root):
if root is not None:
inorder_traversal(root.left) # 首先遍历左子树
print(root.val) # 然后访问根节点
inorder_traversal(root.right) # 最后遍历右子树
```
3. **后序遍历 (左-右-根)**:
```python
def postorder_traversal(root):
if root is not None:
postorder_traversal(root.left) # 先左子树
postorder_traversal(root.right) # 再右子树
print(root.val) # 最后访问根节点
```
注意,以上代码假设`TreeNode`类已存在,包含`val`、`left`和`right`属性。在实际应用中,你可能会在类里添加额外的功能。
阅读全文