层序遍历:
按照从上到下从左到右的顺序将结点全部写出来
1.把根放到队列中(创始人)
2.循环直到 队首结点为空
1.把队首结点取出
2.打印队首结点,并把队首结点的左右孩子放入队列
import java.util.*;
public class Trees{
public static void levelOrderTraversal(TreeNode root){ //层序遍历 队列中不放空结点,先放左再放右
if(root == null){
return ;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()){ //队列中不放空结点
TreeNode front = queue.poll();//1.把队首结点取出
System.out.println(front.val);//2.打印队首结点, 并把队首结点的左右孩子放入队列 先放左再放右
if(front.left != null){ //先放左
queue.add(front.left);
}
if(front.right != null){ //再放右
queue.add(front.right);
}
}
}
}