一、题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
二、代码分析
public class Solution {
ArrayList<Integer> arraylist = new ArrayList<Integer>();
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> list = new ArrayList<>();
ArrayList<TreeNode> queue = new ArrayList<>();
if (root == null) {
return list;
}
//首先将根节点添加进队列
queue.add(root);
//循环判断队列是否为空
while (queue.size() != 0) {
//取出队列第一个元素
TreeNode temp = queue.remove(0);
//如果这个元素的左节点不为0
if (temp.left != null){
//先将这个元素的左节点添加进来
queue.add(temp.left);
}
if (temp.right != null) {
//如果右边的不为零,则将这个节点添加进来
queue.add(temp.right);
}
//最后取出这个元素到list中
list.add(temp.val);
}
return list;
}
}
运行结果: