作用:
- 用于树、图的遍历
广度优先:
- 广度优先遍历通常借助
队列
来实现。队列遵循先进先出
的规则,而广度优先遍历则遵循逐层推进
的规则 - 代码实现(树):
/* 层序遍历 */ func levelOrder(root *TreeNode) []any { // 初始化队列,加入根节点 queue := list.New() queue.PushBack(root) // 初始化一个切片,用于保存遍历序列 nums := make([]any, 0) for queue.Len() > 0 { // 队列出队 node := queue.Remove(queue.Front()).(*TreeNode) // 保存节点值 nums = append(nums, node.Val) if node.Left != nil { // 左子节点入队 queue.PushBack(node.Left) } if node.Right != nil { // 右子节点入队 queue.PushBack(node.Right) } } return nums }
2025年6月15日...大约 2 分钟