每日一题---剑指 Offer 32 - II. 从上到下打印二叉树 II[力扣][Go]

题目描述

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

解题代码

// 逐层打印
func levelOrder(root *TreeNode) [][]int {
    
    
	var sum [][]int
	queue := list.New()
	if root != nil {
    
    
		// 将根节点入队
		queue.PushBack(root)
	}
	for queue.Len() != 0  {
    
    
		var tem []int
		size := queue.Len()
		// 每层需要出站的个数
		for  ; size >0 ; size-- {
    
    
			// 获取头结点
			e := queue.Front()
			tre := e.Value.(*TreeNode)
			tem = append(tem, tre.Val)
			// 移除头结点
			queue.Remove(e)
			// 将节点的左右节点入队
			if tre.Left != nil {
    
    
				queue.PushBack(tre.Left)
			}
			if tre.Right != nil {
    
    
				queue.PushBack(tre.Right)
			}
		}
		sum = append(sum, tem)
	}
	return sum
}

提交结果

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_52025712/article/details/121286595