头条面试官问的一个问题,当时居然没写出来,难受。(树和队列练得少)
题目描述:打印从左往右看到的二叉树(就是打印每层第一个节点)
思路:按层换行打印改动一下,加个标记位解决。
按层换行打印:https://blog.youkuaiyun.com/qq_35546040/article/details/80389381
代码:
import java.util.LinkedList;
import java.util.Queue;
public class Tree {
TreeNode last;
TreeNode nlast;
public void printTree(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
last = root; //记录当前层最后一个节点
nlast = root; //记录下一层的最后一个节点
int flag = 1;
while (!queue.isEmpty()) {
TreeNode t = queue.peek();
if(flag == 1){
System.out.print(queue.poll().val + " ");
flag = 0;
}else{
q