一、题目
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
二、思路
二叉树的层次遍历,可以借助队列实现。具体思路详见注释。
三、代码
import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}} */ public class Solution {public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {ArrayList<Integer> arrayList=new ArrayList<Integer>();//新建一个队列,LinkedList实现了Quene接口,可以直接当作队列来用LinkedList<TreeNode> queue = new LinkedList<TreeNode>();TreeNode current; //当前节点if(root!=null){queue.offer(root);//根节点入队列 }while (!queue.isEmpty()) {current = queue.poll(); //取出队列的头节点arrayList.add(current.val);//保存队列的头节点的值if (current.left != null) {queue.offer(current.left); //如果当前节点的左节点不为空,则左节点入队列 }if (current.right != null) {queue.offer(current.right); //如果当前节点的右节点不为空,则右节点入队列 }}return arrayList;} }
---------------------------------------------------------
参考链接: