// 层序遍历二叉树
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索引地址 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。如...
- 二叉树的遍历、按层打印、序列化 这三个操作是不一样的 二叉树的遍历常用递归的形式,那前序遍历来说,先访问根结点,在...