Skip to content

Commit 8048293

Browse files
authored
Create 0103-binary-tree-zigzag-level-order-traversal.kt
1 parent bfcaeb9 commit 8048293

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* Example:
3+
* var ti = TreeNode(5)
4+
* var v = ti.`val`
5+
* Definition for a binary tree node.
6+
* class TreeNode(var `val`: Int) {
7+
* var left: TreeNode? = null
8+
* var right: TreeNode? = null
9+
* }
10+
*/
11+
class Solution {
12+
fun zigzagLevelOrder(root: TreeNode?): List<List<Int>> {
13+
14+
val res = ArrayList<ArrayList<Int>>()
15+
root?: return res
16+
17+
val q = ArrayDeque<TreeNode?>()
18+
var left = true
19+
20+
q.add(root)
21+
22+
while(q.isNotEmpty()) {
23+
val s = q.size
24+
val temp = ArrayList<Int>()
25+
repeat (s) {
26+
val x = q.poll()!!
27+
if(x.left != null) q.add(x.left)
28+
if(x.right != null) q.add(x.right)
29+
if(left) temp.add(x.value)
30+
else temp.add(0, x.value)
31+
}
32+
res.add(temp)
33+
left = !left
34+
}
35+
36+
return res
37+
}
38+
39+
val TreeNode.value
40+
get() = this.`val`
41+
}

0 commit comments

Comments
 (0)