// 层序遍历二叉树
public void printTreeByLevel(TreeNode root){
if(root == null)
return;
Queue<TreeNode> q = new LinkedList<>(); // 用来暂存遍历的节点
q.offer(root);
int current = 1; // 用来记录当前层还需要打印的节点数目
int next = 0; // 用来记录下一层需要打印的节点数目
while(!q.isEmpty()){
TreeNode tmp = q.poll();
System.out.print(tmp.val + " ");
current --;
if(tmp.left != null){
q.offer(tmp.left);
next ++;
}
if(tmp.right != null){
q.offer(tmp.right);
next ++;
}
if(current == 0){ // 到达层尾后,换行,更新计数
System.out.println();
current = next;
next = 0;
}
}
}
【剑指offer】层序打印二叉树
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1从上往下打印二叉树 【题目】从上往下打印出二叉树的每个节点,同层节点从左至右打印。 【考察点】举例让抽象具体...
- 剑指offer专题地址 剑指offer索引地址 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。如...
- 二叉树的遍历、按层打印、序列化 这三个操作是不一样的 二叉树的遍历常用递归的形式,那前序遍历来说,先访问根结点,在...
- 描述:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路:原型为层次遍历,因为要每一行换行输出...