๐Ÿ“ฆ jtr109 / go-playground

๐Ÿ“„ lib.go ยท 26 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26// https://leetcode.com/explore/featured/card/august-leetcoding-challenge-2021/613/week-1-august-1st-august-7th/3871/

package narytreelevelordertraversal

type Node struct {
	Val      int
	Children []*Node
}

func levelOrder(root *Node) [][]int {
	if root == nil {
		return [][]int{}
	}
	childrenLevelOrder := [][]int{{root.Val}}
	for _, child := range root.Children {
		childLevelOrder := levelOrder(child)
		for i, order := range childLevelOrder {
			if i+1 >= len(childrenLevelOrder) {
				childrenLevelOrder = append(childrenLevelOrder, []int{})
			}
			childrenLevelOrder[i+1] = append(childrenLevelOrder[i+1], order...)
		}
	}
	return childrenLevelOrder
}