二叉树的前序遍历非递归实现方式如下:
创建一个栈,用于存储遍历过程中访问的节点。
从根节点开始,将根节点入栈。
重复以下步骤直到栈为空:
- 取出栈顶元素并访问。
- 如果栈顶元素的右子节点不为空,将右子节点入栈。
- 如果栈顶元素的左子节点不为空,将左子节点入栈。
代码如下:
def preorder_traversal(root):
if root is None:
return
stack = []node = root
while stack or node:
whil