剑指offer:从上往下打印二叉树

来源:互联网 发布:软件业务销售合同范本 编辑:程序博客网 时间:2024/05/21 17:22

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:
每一次打印一个结点的时候,如果该结点有子结点,则把子结点放进队列的末尾。接下来把最早进入队列的头部取出,重复前面的步骤,直至队列里的所有结点都打印完毕。
代码如下:
public class Solution {
public ArrayList PrintFromTopToBottom(TreeNode root) {
ArrayList list = new ArrayList();
if(root==null) return list;
Deque q=new LinkedList();
q.add(root);
while(!q.isEmpty()){
TreeNode t=q.pop();
list.add(t.val);
if(t.left!=null) q.add(t.left);
if(t.right!=null) q.add(t.right);
}
return list;
}
}