** 用一个 ltoR 标识标记本行是否 left to right,每次遍历完一行就翻转标志位 package main import . "nc_tools" func Print(pRoot *TreeNode) (ans [][]int) { if pRoot==nil{ return } queue := []*TreeNode{pRoot} lToR := true for len(queue) != 0 { size := len(queue) layer := make([]int, size) for i := 0; i < size; i++ { node := queue[0] queue = queue[1:] if lToR { layer[i] = node.Val } else { layer[size-1-i] = node.Val } if node.Left != nil { queue = append(queue, node.Left) } if node.Right != nil { queue = append(queue, node.Right) } } ans = append(ans, layer) lToR = !lToR } return }
点赞

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务