现有二叉树如下所示
// 0
// 2 1
// 3
// 4
一、 实现二叉树层序遍历:直接层序遍历打印一个list
//二叉树的层序遍历
//用一个队列,先将根节点放入
// 队列不空的时候就将第一个节点输出打印,这个节点的左子树不空时,将左节点入队,右子树不空时就将右节点入队
private static ArrayList<Integer> help(TreeNode root){
ArrayList<Integer> res = new ArrayList<>();
Queue<TreeNode> q = new LinkedList<>();
if(root == null){
return res;
}
q.offer(root);
while(q.isEmpty() != true){
TreeNode temp = q.poll();
res.add(temp.val);
if(temp.left != null){
q.offer(temp.left);
}
if(temp.right != null){
q.offer(temp.right);
}
}
return res;
}
output:
二、将二叉树的层序遍历结果按层区分输出
//二叉树的层序遍历,每层分别放在list中输出
//将根节点放入队列中,队列不空的时候,计算队列的大小,for循环中弹出队列首的元素,如果他的左子树不空就压入左子节点,如果右子树不空就压入右子节点
//for循环队列的size次,将本层节点都存入list
private static