LeetCode102. 二叉树的层序遍历Golang版
1. 问题描述
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

2. 思路
层序遍历模板题
3. 代码
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) [][]int {
var res [][]int
if root == nil {
return res
}
queue := []*TreeNode{root}
for len(queue) != 0 {
var layer []int
length := len(queue)
for i := 0; i < length; i++ {
if queue[0].Left != nil {
queue = append(queue, queue[0].Left)
}
if queue[0].Right != nil {
queue = append(queue, queue[0].Right)
}
layer = append(layer, queue[0].Val)
queue = queue[1:]
}
res = append(res, layer)
}
return res
}
LeetCode102二叉树层序遍历
本文介绍了解决LeetCode102题——二叉树的层序遍历的方法。通过使用队列实现逐层访问二叉树的所有节点,并返回每一层的节点值。该算法适用于任何形态的二叉树。
405

被折叠的 条评论
为什么被折叠?



