zoukankan      html  css  js  c++  java
  • Go语言实现:【剑指offer】从上往下打印二叉树

    该题目来源于牛客网《剑指offer》专题。

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    不需分层,一维数组。

    Go语言实现:

    /**
     * Definition for a binary tree node.
     * type TreeNode struct {
     *     Val int
     *     Left *TreeNode
     *     Right *TreeNode
     * }
     */
    func levelOrder(root *TreeNode) []int {
        var result []int
        
        if root == nil {
           return result
        }
        
        //初始化一个队列
        list := list.New()
        //从头部插入root
        list.PushFront(root)
        
        //开始层次遍历,即广度优先遍历
        for list.Len() > 0 {
            //取本层的节点数
            curentLenth := list.Len()
            for i := 0; i < curentLenth; i++ {
                //从尾部移除,Remove返回值为接口类型,需指定为TreeNode
                node := list.Remove(list.Back()).(*TreeNode)
                result = append(result, node.Val)
                if node.Left != nil {
                    list.PushFront(node.Left)
                }
                if node.Right != nil {
                    list.PushFront(node.Right)
                }
            }
        }
        
        return result
    }
    
  • 相关阅读:
    shell学习(三)
    shell学习(四)
    自定义yum源
    fpm制作rpm包
    shell学习(三)
    shell学习(二)
    linux系统下创建lvm挂载到指定目录
    nginx做代理安装docker
    df -h命令卡死解决办法
    docker安装
  • 原文地址:https://www.cnblogs.com/dubinyang/p/12099387.html
Copyright © 2011-2022 走看看