[Golang] Leet Code-검지 Offer-면접문제 32-II-위에서 아래로 두 갈래 나무 인쇄 II
5679 단어 Leet Code 개인 문제풀이.
제목
위에서 아래로 층별로 두 갈래 트리를 인쇄하고, 같은 층의 노드는 왼쪽에서 오른쪽으로 순서대로 인쇄하며, 층마다 한 줄로 인쇄한다.
예를 들어 두 갈래 나무를 주면[3,9,20,null,null,15,7], 3
/ \
9 20
/ \
15 7
다음 단계를 반복한 결과를 반환합니다.[[3],[9,20],[15,7]]
팁: 노드 총 수 <= 1000
출처: 리코드(LeetCode) 링크:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof
문제 풀이 사고방식
3
/ \
9 20
/ \
15 7
[[3],[9,20],[15,7]]
코드
– 실행 시간: 0ms – 메모리 사용량: 3MB
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) [][]int {
//
tree:=make([][]int,0)
creat(&tree,root,0)
return tree
}
func creat(tree *[][]int,root *TreeNode,level int) {
if root==nil{
return
}
if len(*tree)-1<level{
(*tree)=append((*tree),make([]int,0))
}
(*tree)[level]=append((*tree)[level],root.Val)
//level++ ,
level++
creat(tree,root.Left,level)
creat(tree,root.Right,level)
}