1、首先建立一个栈和链表
2、判断root为空
3、遍历根节点和左子节点并且都放入链表和栈里
4、然后每推出一个栈顶元素就遍历该元素的右子节点 并且放入栈和链表里
5、返回链表
/**
* 迭代法实现前序遍历
*/
public List<Integer> preOrderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
if (root == null) {
return res;
}
Deque<TreeNode> stack = new LinkedList<>();
TreeNode node = root;
while (!stack.isEmpty() || node != null) {
while (node != null) {
res.add(root.val);
stack.push(root);
root = root.left;
}
root = stack.pop();
root = root.right;
}
return res;
}
本文介绍了如何使用迭代方法在Java中实现二叉树的前序遍历,步骤包括初始化栈和链表,遍历根节点和左子节点,以及根据栈顶元素遍历右子节点。
97

被折叠的 条评论
为什么被折叠?



