File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ ``` java
2
+ /**
3
+ * Definition for a binary tree node.
4
+ * public class TreeNode {
5
+ * int val;
6
+ * TreeNode left;
7
+ * TreeNode right;
8
+ * TreeNode(int x) { val = x; }
9
+ * }
10
+ */
11
+ class Solution {
12
+ public List<List<Integer > > zigzagLevelOrder (TreeNode root ) {
13
+ List<List<Integer > > res = new ArrayList<> ();
14
+ if (root== null )return res;
15
+ Stack<TreeNode > s1 = new Stack<> ();
16
+ Stack<TreeNode > s2 = new Stack<> ();
17
+ s1. push(root);
18
+ List<Integer > tmp = new ArrayList<> ();
19
+ while (! s1. empty()){
20
+ while (! s1. empty()){
21
+ TreeNode r = s1. pop();
22
+ tmp. add(r. val);
23
+ if (r. left!= null ){
24
+ s2. push(r. left);
25
+ }
26
+ if (r. right!= null ){
27
+ s2. push(r. right);
28
+ }
29
+ if (s1. empty()){
30
+ res. add(tmp);
31
+ tmp = new ArrayList<> ();
32
+ }
33
+ }
34
+ while (! s2. empty()){
35
+ TreeNode r = s2. pop();
36
+ tmp. add(r. val);
37
+ if (r. right!= null ){
38
+ s1. push(r. right);
39
+ }
40
+ if (r. left!= null ){
41
+ s1. push(r. left);
42
+ }
43
+ if (s2. empty()){
44
+ res. add(tmp);
45
+ tmp = new ArrayList<> ();
46
+ }
47
+ }
48
+ }
49
+ return res;
50
+ }
51
+ }
52
+ ```
You can’t perform that action at this time.
0 commit comments