树的前序遍历是指按照根节点 -> 左子树 -> 右子树的顺序访问树中的所有节点。下面是一种非递归的思路来实现树的前序遍历:
通过上述步骤,可以实现树的前序遍历。具体的实现代码如下所示(以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
以上代码使用一个栈来实现前序遍历。首先将根节点入栈,然后循环弹出栈顶节点并访问该节点,同时将右子树和左子树按照顺序入栈。最后返回遍历结果即可。