按先序、中序、后序遍历二叉树(三种递归算法和中序遍历的非递归算法)代码
时间: 2023-10-22 14:22:51 浏览: 103
很高兴为您解答二叉树遍历相关问题,以下是各种遍历方式的实现代码:
先序遍历(递归方式):
```python
def preorder_traversal(root):
if not root:
return
print(root.val)
preorder_traversal(root.left)
preorder_traversal(root.right)
```
中序遍历(递归方式):
```python
def inorder_traversal(root):
if not root:
return
inorder_traversal(root.left)
print(root.val)
inorder_traversal(root.right)
```
后序遍历(递归方式):
```python
def postorder_traversal(root):
if not root:
return
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val)
```
中序遍历(非递归方式):
```python
def inorder_traversal(root):
stack = []
while stack or root:
while root:
stack.append(root)
root = root.left
root = stack.pop()
print(root.val)
root = root.right
```
希望以上代码能解决您的问题,如有不足之处,还请指出。
阅读全文