Advertisement
Guest User

Untitled

a guest
Aug 26th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1.  
  2. public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
  3. Queue<TreeNode> q = new LinkedList();
  4. List<List<Integer>> levels = new ArrayList();
  5. if(root == null) return levels;
  6. q.offer(root);
  7. boolean forward = true;
  8. while(!q.isEmpty()){
  9. int size = q.size();
  10. List<Integer> level = new ArrayList();
  11. for(int i = 0; i < size; i++){
  12. TreeNode curr = q.poll();
  13. level.add(curr.val);
  14. if(curr.left != null) q.offer(curr.left);
  15. if(curr.right != null) q.offer(curr.right);
  16. }
  17. if(forward){
  18. forward = false;
  19. levels.add(level);
  20. } else {
  21. Collections.reverse(level);
  22. levels.add(level);
  23. forward = true;
  24. }
  25. }
  26. return levels;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement