剑指offer——22.从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:
使用队列,入队一个节点,当他出队时,存入数组,同时,将他的左右节点放入队列。
代码:
import java.util.Queue; import java.util.ArrayList; import java.util.LinkedList; public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> result = new ArrayList<Integer>(); if(root == null){ return result; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); while(!queue.isEmpty()){ TreeNode tmp = queue.poll(); result.add(tmp.val); if(tmp.left != null){ queue.offer(tmp.left); } if(tmp.right != null){ queue.offer(tmp.right); } } return result; } }