题解 | #二叉树的深度#

按之字形顺序打印二叉树

http://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

package main
import . "nc_tools"
/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */


func Print(root *TreeNode ) [][]int {
    ans := make([][]int, 0)
    if root == nil {
        return ans
    }
    queue := make([]*TreeNode, 0)
    queue = append(queue, root)
    for len(queue) > 0 {
        subNum := make([]int, 0)
        size := len(queue)
        for size > 0 {
            cur := queue[0]
            queue = queue[1:]
            if len(ans) % 2 == 0 {
                subNum = append(subNum, cur.Val)
            }else {
                //insert a value in a slice at a given index
                subNum = append(subNum, 0)
                copy(subNum[1:], subNum[0:]) 
                subNum[0] = cur.Val
            }
            if cur.Left != nil {
                queue = append(queue, cur.Left)
            }
            if cur.Right != nil {
                queue = append(queue, cur.Right)
            }
            size--
        }
        ans = append(ans, subNum)
    }
    return ans
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务