如何用非递归算法实现二叉树的先序遍历?
时间: 2024-06-16 15:07:18 浏览: 124
二叉树先序遍历的非递归算法具体实现
5星 · 资源好评率100%
非递归算法实现二叉树的先序遍历可以使用栈来辅助实现。具体步骤如下:
1. 创建一个空栈,并将根节点入栈。
2. 循环执行以下步骤,直到栈为空:
- 弹出栈顶节点,并访问该节点。
- 如果该节点的右子节点不为空,则将右子节点入栈。
- 如果该节点的左子节点不为空,则将左子节点入栈。
下面是一个示例代码实现:
```python
def preorderTraversal(root):
if not root:
return []
stack = []
result = []
stack.append(root)
while stack:
node = stack.pop()
result.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return result
```
阅读全文