Skip to content

Commit 9d238d1

Browse files
committed
binary_tree_level_order_traversal
1 parent 4b57e8f commit 9d238d1

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ Golang solution for leetcode. For each problem, there is a simple *_test.go to t
8888
#### [98. validate binary search tree](https://github.com/hitzzc/go-leetcode/tree/master/validate_binary_search_tree)
8989
#### [100. same tree](https://github.com/hitzzc/go-leetcode/tree/master/same_tree)
9090
#### [101. symmetric tree](https://github.com/hitzzc/go-leetcode/tree/master/symmetric_tree)
91+
#### [102. Binary Tree Level Order Traversal](https://github.com/hitzzc/go-leetcode/tree/master/binary_tree_level_order_traversal)
9192

9293

9394

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package binary_tree_level_order_traversal
2+
3+
type TreeNode struct {
4+
Val int
5+
Left *TreeNode
6+
Right *TreeNode
7+
}
8+
9+
func levelOrder(root *TreeNode) [][]int {
10+
if root == nil {
11+
return [][]int{}
12+
}
13+
stack := []*TreeNode{root}
14+
rets := [][]int{}
15+
for len(stack) != 0 {
16+
tmpStack := []*TreeNode{}
17+
ret := []int{}
18+
for i := range stack {
19+
ret = append(ret, stack[i].Val)
20+
if stack[i].Left != nil {
21+
tmpStack = append(tmpStack, stack[i].Left)
22+
}
23+
if stack[i].Right != nil {
24+
tmpStack = append(tmpStack, stack[i].Right)
25+
}
26+
}
27+
rets = append(rets, ret)
28+
stack = tmpStack
29+
}
30+
return rets
31+
}

0 commit comments

Comments
 (0)