从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
分析
其实就是层次遍历。和把二叉树打印成多行类似。借助一个队列,先将根节点加入队列,循环依次加入左右节点,同时弹出第一个元素加入到结果集合中。
实现
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> list = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty()) {
TreeNode node = queue.remove();
if (node == null) {
continue;
}
list.add(node.val);
queue.add(node.left);
queue.add(node.right);
}
return list;
}