https://oj.leetcode.com/problems/binary-tree-preorder-traversal/
题目要求用迭代方法对树进行先根遍历,用一个栈来实现,要先放右子节点,再放左子节点。
public class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
ArrayList<Integer>list = new ArrayList<Integer>();
if(root == null)return list;
Stack<TreeNode>stack = new Stack<TreeNode>();
stack.add(root);
while(!stack.empty()){
TreeNode node = stack.pop();
list.add(node.val);
if(node.right!=null){
stack.add(node.right);
}
if(node.left!=null){
stack.add(node.left);
}
}
return list;
}
}