前言啊:工作几年了,但以前大学学的算法都快忘完了。趁着准备换工作的时间准备把算法给捡起来,因为毕业后用的编程语言是Java所以准备都用Java语言来实现。
要求:有如下的二叉树,请写出一算法实现分层从左到右打印二叉树
预期结果:
root
left01 right01
left11 right11 left12 right12
代码:
/**
*
*/
package my.algorithm.ch01;
import java.util.LinkedList;
import java.util.Queue;
/**
* 分层打印二叉树
*
* @Builder Create By Arno
* @Email admin@happy-dev.com
* @Time 2017年5月1日
*/
public class TreePrint {
public static void print(BinaryTree root) {
// 创建一个队列用来存放节点
Queue<BinaryTree> queue = new LinkedList<BinaryTree>();
// 当前行打印的最右节点
BinaryTree last;
// 下一行打印的最右节点
BinaryTree nlast = null;
last = root;
// 先将根