题目:给定一个二叉树,返回它的 前序 遍历。 用迭代法
public List<Integer> preorderTraversal(TreeNode root) {
LinkedList<Integer> ans = new LinkedList<>();
if (root == null) return ans;
Stack<TreeNode> stk = new Stack<>();
stk.push(root);
while (!stk.empty()) {
TreeNode p = stk.pop();
ans.add(p.val);
if (p.right != null) stk.push(p.right);
if (p.left != null) stk.push(p.left);
}
return ans;
}