写出中序遍历二叉树的递归算法和非递归算法。
时间: 2023-12-27 19:03:53 浏览: 80
树的遍历,有递归和非递归两种算法
好的,以下是中序遍历二叉树的递归算法和非递归算法:
递归算法:
```python
def inorder_traversal(root):
if root:
inorder_traversal(root.left)
print(root.value)
inorder_traversal(root.right)
```
非递归算法:
```python
def inorder_traversal(root):
stack = []
current = root
while True:
# 把所有左子节点压入栈中
while current:
stack.append(current)
current = current.left
# 如果栈为空,说明遍历完毕
if not stack:
break
# 弹出栈顶元素并访问
current = stack.pop()
print(current.value)
# 处理右子节点
current = current.right
```
希望以上回答能对您有所帮助。
阅读全文