题解 | #牛群分层排列#
牛群分层排列
https://www.nowcoder.com/practice/7e98027a60424c9ba88d9c4c0506ede4
知识点:
树的层序遍历
解题思路:
用一个队列来存放每一层的节点,一边算出当前层的结果,一边将在一层放入队列
语言:
Golang
package main
import "strconv"
/*
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return string字符串一维数组
*/
func levelOrder( root *TreeNode ) []string {
// write code here
res:=[]string{}
if root == nil{
return res
}
queue:=[]*TreeNode{root}
for len(queue) > 0 {
size:=len(queue)
str:=""
for i:=0;i<size;i++{
cur:=queue[0]
queue = queue[1:]
str+=strconv.Itoa(cur.Val)
if cur.Left!=nil{
queue = append(queue, cur.Left)
}
if cur.Right!=nil{
queue = append(queue, cur.Right)
}
}
res = append(res, str)
}
return res
}
