题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
分析
我纳闷,这题怎么能放在困难里呢,就是层次遍历呀,改都不需要改,较难的部分还需要在层次遍历基础上按照题目改,这里都不需要改。
实现代码:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
//非递归
ArrayList<Integer> list = new ArrayList<>();
if(root == null){
return list;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
TreeNode cur;
while(!queue.isEmpty()){
cur = queue.poll();//出队
list.add(cur.val);
if(cur.left != null){
queue.offer(cur.left);
}
if(cur.right != null){
queue.offer(cur.right);
}
}
return list;
}
}