Go语言实现:【剑指offer】从上往下打印二叉树
2024-09-04 10:56:58
该题目来源于牛客网《剑指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
}
最新文章
- [转载]T-SQL(Oracle)语句查询执行顺序
- ubuntu使用
- PHP中的抽象类和接口
- Google perf tools for nginx
- Java 中 String 类和StringBuilder 类的常用方法
- shell变量自增的几种方式
- Java魔法堂:JVM的运行模式 (转)
- BFS and Queue
- CLR查找和加载程序集的方式(二) 流程图
- c语言项目开发流程一部曲
- mysql的left jion:就是left outer join(right join同理)
- Redis设计与实现:读书笔记之二
- Python实现机器学习算法:感知机
- 一个rcu回调导致的简单死锁
- cookie的安全性问题
- webstorm编译less和scss
- 打包工具的核心原理(转自:https://juejin.im/entry/5b223ebd518825748b569bda)
- centos-iptables-scripts
- Draw a Mess (并查集)
- Python3解leetcode Maximum Subarray