题解 | #从上往下打印二叉树#
从上往下打印二叉树
http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
题解思路: 我们可以进行层次遍历,然后使用队列存储层次结果的值,然后将队列中的值放入到数组中
//判断头节点是否有值
//创建一个队列用来存放结点
Queue queue = new LinkedList<>();
//创建一个返回的列表
ArrayList<Integer> list = new ArrayList<>();
if (root==null){
return list;
}
//根节点入队列
queue.add(root);
//使用循环实现层次遍历
while (!queue.isEmpty()){
//首先将队列中的结点弹出去
TreeNode node= (TreeNode)queue.poll();
//将弹出的结点的值放入到返回的列表中
if (node!=null) {
list.add(node.val);
}
//将弹出结点的左右子结点放入到队列中
if (node.left!=null){
queue.add(node.left);
}
if (node.right!=null){
queue.add(node.right);
}
}
return list;
}