树的前序遍历非递归思路
时间: 2023-05-10 17:56:07 浏览: 109
先序遍历的非递归算法
5星 · 资源好评率100%
可以使用栈来实现树的前序遍历非递归思路。具体实现方法如下:
1. 将根节点入栈。
2. 循环执行以下步骤,直到栈为空:
a. 弹出栈顶节点,并输出该节点的值。
b. 如果该节点有右子节点,将右子节点入栈。
c. 如果该节点有左子节点,将左子节点入栈。
这样可以保证先访问根节点,然后访问左子树,最后访问右子树,即实现了前序遍历。
以下是示例代码:
```python
def preorderTraversal(root):
if not root:
return []
stack, res = [root], []
while stack:
node = stack.pop()
res.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return res
```
注意:这里的代码是用 Python 实现的,如果需要使用其他语言,需要进行相应的修改。
阅读全文