链接:
https://leetcode.com/problems/binary-tree-preorder-traversal/
大意:
使用迭代方法先序遍历二叉树。例子:
思路:
二叉树先序遍历的迭代实现,使用栈。
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
if (root == null)
return res;
ArrayList<TreeNode> stack = new ArrayList<>();
while (root != null || !stack.isEmpty()) {
if (root == null) {
root = stack.remove(stack.size() - 1).right;
} else {
stack.add(root);
res.add(root.val);
root = root.left;
}
}
return res;
}
}
结果:
结论:
很基础的一个题。