二叉树的按层遍历
实现二叉树的按层遍历
1、其实就是宽度优先遍历,用队列
2、可以通过设置flag变量的方式,来发现某一层的结束
1、申请一个新的队列,将头节点放入队列
2、每弹出一个节点,将该节点的左右孩子都放入队列

package com.example.springboot;
import java.util.LinkedList;
import java.util.Queue;
public class LevelTraversalBT {
//方法一:
public static class Node {
public int value;
public Node left;
public Node right;
public Node(int v) {
value = v;
}
}
public static void level(Node head) {
if(head==null){
return;
}
Queue<Node> queue=new LinkedList<>();
queue.add(head);
while (!queue.isEmpty()){
Node cur=queue.poll();
System.out.print(cur.value);
if (cur.left!=null){
queue.add(cur.left);
}
if(cur.right!=null){
queue.add(cur.right);
}
}
System.out.println();
}
//测试方法
public static void main(String[] args) {
Node head = new Node(1);
head.left = new Node(2);
head.right = new Node(3);
head.left.left = new Node(4);
head.left.right = new Node(5);
head.right.left = new Node(6);
head.right.right = new Node(7);
level(head);
System.out.println("========");
}
}