File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
src/main/java/com/geekidentity/leetcode/n0103 Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com .geekidentity .leetcode .n0103 ;
2
+
3
+ import java .util .*;
4
+
5
+ public class ZigzagLevelOrder {
6
+ public List <List <Integer >> zigzagLevelOrder (TreeNode root ) {
7
+ List <List <Integer >> result = new ArrayList <>();
8
+ if (root == null ) return result ;
9
+ Queue <TreeNode > nodeQueue = new ArrayDeque <TreeNode >();
10
+ nodeQueue .offer (root );
11
+ boolean left = true ;
12
+ while (!nodeQueue .isEmpty ()) {
13
+ int size = nodeQueue .size ();
14
+ Deque <Integer > levelQueue = new LinkedList <>();
15
+ for (int i = 0 ; i < size ; i ++) {
16
+ TreeNode node = nodeQueue .poll ();
17
+ if (left ) {
18
+ levelQueue .addLast (node .val );
19
+ } else {
20
+ levelQueue .addFirst (node .val );
21
+ }
22
+ if (node .left != null ) nodeQueue .offer (node .left );
23
+ if (node .right != null ) nodeQueue .offer (node .right );
24
+ }
25
+ left = !left ;
26
+ result .add (new LinkedList <>(levelQueue ));
27
+ }
28
+ return result ;
29
+ }
30
+
31
+ static class TreeNode {
32
+ int val ;
33
+ TreeNode left ;
34
+ TreeNode right ;
35
+ TreeNode () {}
36
+ TreeNode (int val ) { this .val = val ; }
37
+ TreeNode (int val , TreeNode left , TreeNode right ) {
38
+ this .val = val ;
39
+ this .left = left ;
40
+ this .right = right ;
41
+ }
42
+ }
43
+ }
You can’t perform that action at this time.
0 commit comments