N22_从上到下打印二叉树

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。
package new_offer;
import java.util.ArrayList;
/**
 * 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
 * 借助队列实现。先把根节点放入队列中,然后将出队,每出队判断其是否有左右节点 
 * 若有则加入到队列中。
 */
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;
    public TreeNode(int val) {
        this.val = val;
    }
}
*/
public class N22_Print2TreeFromTopToBottom {
	
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList a=new ArrayList();
        ArrayList<TreeNode> queue=new ArrayList<TreeNode>();
        if(root==null) return a;
        queue.add(root);
        while(queue.size()!=0) {
        	TreeNode t=queue.remove(0);
        	if(t.left!=null) queue.add(t.left);
        	if(t.right!=null) queue.add(t.right);
        	a.add(t.val);
        }
        return a;
    }

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

  

原文地址:https://www.cnblogs.com/kexiblog/p/11126035.html