Skip to content

Commit 1d2c80c

Browse files
refactor 103
1 parent f303700 commit 1d2c80c

File tree

1 file changed

+31
-30
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+31
-30
lines changed

src/main/java/com/fishercoder/solutions/_103.java

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88
import java.util.List;
99
import java.util.Queue;
1010

11-
1211
/**
13-
* 103. Binary Tree Zigzag Level Order Traversal
14-
*
12+
* 103. Binary Tree Zigzag Level Order Traversal
13+
*
1514
Given a binary tree, return the zigzag level order traversal of its nodes' values.
1615
(ie, from left to right, then right to left for the next level and alternate between).
1716
@@ -30,36 +29,38 @@
3029
]
3130
*/
3231
public class _103 {
33-
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
34-
Queue<TreeNode> q = new LinkedList();
35-
List<List<Integer>> levels = new ArrayList();
36-
if (root == null) {
37-
return levels;
38-
}
39-
q.offer(root);
40-
boolean forward = true;
41-
while (!q.isEmpty()) {
42-
int size = q.size();
43-
List<Integer> level = new ArrayList();
44-
for (int i = 0; i < size; i++) {
45-
TreeNode curr = q.poll();
46-
level.add(curr.val);
47-
if (curr.left != null) {
48-
q.offer(curr.left);
32+
public static class Solution1 {
33+
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
34+
Queue<TreeNode> q = new LinkedList();
35+
List<List<Integer>> levels = new ArrayList();
36+
if (root == null) {
37+
return levels;
38+
}
39+
q.offer(root);
40+
boolean forward = true;
41+
while (!q.isEmpty()) {
42+
int size = q.size();
43+
List<Integer> level = new ArrayList();
44+
for (int i = 0; i < size; i++) {
45+
TreeNode curr = q.poll();
46+
level.add(curr.val);
47+
if (curr.left != null) {
48+
q.offer(curr.left);
49+
}
50+
if (curr.right != null) {
51+
q.offer(curr.right);
52+
}
4953
}
50-
if (curr.right != null) {
51-
q.offer(curr.right);
54+
if (forward) {
55+
forward = false;
56+
levels.add(level);
57+
} else {
58+
Collections.reverse(level);
59+
levels.add(level);
60+
forward = true;
5261
}
5362
}
54-
if (forward) {
55-
forward = false;
56-
levels.add(level);
57-
} else {
58-
Collections.reverse(level);
59-
levels.add(level);
60-
forward = true;
61-
}
63+
return levels;
6264
}
63-
return levels;
6465
}
6566
}

0 commit comments

Comments
 (0)