@@ -0,0 +1,1425 @@
+/**%0A * Definition for binary tree%0A * public class TreeNode %7B%0A *     int val;%0A *     TreeNode left;%0A *     TreeNode right;%0A *     TreeNode(int x) %7B val = x; %7D%0A * %7D%0A */%0Apublic class Solution %7B%0A    public List%3CList%3CInteger%3E%3E zigzagLevelOrder(TreeNode root) %7B%0A        List%3CList%3CInteger%3E%3E results = new ArrayList %3C%3E ();%0A        Stack%3CTreeNode%3E stack = new Stack%3C%3E ();%0A        %0A        if (root != null) %7B%0A            stack.push(root);%0A        %7D%0A        boolean evenLevel = true;%0A        while(!stack.isEmpty()) %7B%0A            List%3CInteger%3E level = new ArrayList %3C%3E ();%0A            Stack%3CTreeNode%3E stackTemp = new Stack %3C%3E ();%0A            while(!stack.isEmpty()) %7B%0A                TreeNode n = stack.pop();%0A                level.add(n.val);%0A                if(evenLevel) %7B%0A                    if (n.left != null) %7B%0A                        stackTemp.push(n.left);%0A                    %7D%0A                    if (n.right != null) %7B%0A                        stackTemp.push(n.right);%0A                    %7D%0A                %7D else %7B%0A                    if (n.right != null) %7B%0A                        stackTemp.push(n.right);%0A                    %7D%0A                    if (n.left != null) %7B%0A                        stackTemp.push(n.left);%0A                    %7D%0A                %7D%0A            %7D%0A            results.add(level);%0A            stack = stackTemp;%0A            evenLevel = !evenLevel;%0A        %7D%0A        %0A        return results;%0A    %7D%0A%7D%0A

Create Binary_Tree_Zigzag_Level_Traversal.java