Binary Tree Preorder Traversal

 1 public class Solution {
 2     public ArrayList<Integer> preorderTraversal(TreeNode root) {
 3        ArrayList<Integer> res = new ArrayList<Integer>();
 4         if(root==null) return res;
 5         TreeNode cur = root;
 6         Stack<TreeNode>stack = new Stack<TreeNode>();
 7         while(!stack.isEmpty() || cur!=null){
 8             if(cur!=null){
 9                 res.add(cur.val);
10                 stack.push(cur);
11                 cur = cur.left;
12             }
13             else{
14                 cur = stack.pop();
15                 cur = cur.right;
16             }
17         }
18         return res;
19     }
20 }
View Code

 

posted @ 2014-02-19 05:31  krunning  阅读(101)  评论(0编辑  收藏  举报