剑指Offer打卡day38—— Acwing 44. 分行从上往下打印二叉树
Posted Johnny*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer打卡day38—— Acwing 44. 分行从上往下打印二叉树相关的知识,希望对你有一定的参考价值。
【题目描述】
Acwing 44. 分行从上往下打印二叉树
【思路】
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> printFromTopToBottom(TreeNode root) {
Queue<TreeNode> q = new LinkedList<>();
List<List<Integer>> res = new ArrayList<>();
if( root == null ) return res;
q.offer(root);
while( !q.isEmpty() ){
int size = q.size();//该层节点数
List<Integer> sub = new ArrayList<>();
while( size -- > 0){
//弹出节点
TreeNode node = q.poll();
if( node.left != null) q.offer(node.left);
if( node.right != null) q.offer(node.right);
sub.add(node.val);
}
res.add(sub);
}
return res;
}
}
以上是关于剑指Offer打卡day38—— Acwing 44. 分行从上往下打印二叉树的主要内容,如果未能解决你的问题,请参考以下文章
剑指Offer打卡day38 —— AcWing 43. 不分行从上往下打印二叉树
剑指Offer打卡day42—— AcWing 65. 数组中的逆序对
剑指Offer打卡day42—— Acwing 62. 丑数