题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:
每一次打印一个结点的时候,如果该结点有子结点,则把子结点放进队列的末尾。接下来把最早进入队列的头部取出,重复前面的步骤,直至队列里的所有结点都打印完毕。
代码如下:
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;
}
}
剑指offer:从上往下打印二叉树
最新推荐文章于 2019-08-09 17:29:40 发布