Skip to content

Commit af09b6f

Browse files
authored
Create 啦啦啦.md
1 parent 7cf5e20 commit af09b6f

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

2018.12.06-leetcode103/啦啦啦.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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+
```

0 commit comments

Comments
 (0)