1、层序遍历(BFS)介绍
层序遍历 就是:一层一层,从上到下、从左到右访问。可以理解成:“每层的同学排成一排,按层从上往下点名,每层从左到右点”
先看一棵树:
1
/ \
P4505.普通二叉树的读入与构建
题目内容
给定一个以层序遍历顺序存储的整数数组 nums,其中 nums[i] 表示二叉树节点的值。
数组中可能包含 -1,表示该位置为空节点。请根据该数组按层序遍历顺序重新构建二叉树,并输出二叉树中所有非空节点的值,每个值占一行。
需要注意的是,构建二叉树时应按照层序顺序依次为每个非空节点分配左右孩子;如果某个位置的值为 -1,则表示该孩子为空,不创建节点,也不会继续为该空节点分配子节点。
输入描述
输入一行,包含若干整数,表示二叉树的层序数组表示。
其中,-1 表示空节点,其他整数表示有效节点值。
输出描述
按照层序遍历顺序输出构建后的二叉树中所有非空节点的值。
每个节点值占一行。
样例 1
输入
1 2 3 4 5 -1 6
树的结构
1
/ \
2 3
/ \ \
4 5 6
输出
1
2
3
4
5
6
样例 2
输入
5 3 8 -1 4 7 10
树的结构
5
/ \
3 8
\ / \
4 7 10
输出
5
3
8
4
7
10