题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:即层次遍历二叉树;
import java.util.ArrayList;
import java.util.LinkedList;
/*
层次遍历二叉树,首先,使用一个队列来储存树的根节点,然后判断如果队列不为空,则记录当前节点的值,然后在出队的同时,将该节点的左右节点一次加入队列,直到队列为空,则退出循环。
*/
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> list = new ArrayList<Integer>();
LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
if (root == null)
return null;
queue.add(root);
while (!queue.isEmpty()){
TreeNode node = queue.poll();
list.add(node.val);
if (node.left != null)
queue.add(node.left);
if (node.right != null)
queue.add(node.right);
}
}
}