思想:
last:表示正在打印的当前行的最右节点;
nlast:表示下一行最右节点;
从左到右宽度优先遍历,到last表示该换行了,换行之后,令last=nlast,循环;
import java.util.LinkedList;
import java.util.Queue;
public class BinTreePrint {
private static class binaryTreeNode{
private int val;
private binaryTreeNode left;
private binaryTreeNode right;
public binaryTreeNode() {}
public binaryTreeNode(int val) {
this.val = val;
}
}
public static void binaryNodePrint(binaryTreeNode root) {
Queue<binaryTreeNode> queue = new LinkedList<>();
binaryTreeNode last = root;
binaryTreeNode nlast = root;
queue.offer(root);
while (!queue.isEmpty()) {
binaryTreeNode node = queue.poll();
System.out.print(node.val);
System.out.print('\t');
if (node.left != null) {