题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

代码

public class Solution60 {


    ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {

        ArrayList<ArrayList<Integer>> result = new ArrayList<>();

        if (pRoot==null)
            return result;

        Queue<TreeNode> queue = new  edList<>();

        queue.add(pRoot);

        while (!queue.isEmpty()) {

            int start = 0, end = queue.size();

            ArrayList<Integer>   = new ArrayList<>();

            while (start++ < end) {
                TreeNode cur = queue.poll();
                 .add(cur.val);
                if (cur.left != null) {
                    queue.add(cur.left);
                }
                if (cur.right != null) {
                    queue.add(cur.right);
                }
            }

            result.add( );


        }
        return result;

    }

    public static void main(String[] args) {

        int[] a = {1, 5, 7, 11, 43, 12, 45, 32, 23, 9, 21};
        TreeNode tree = BeanUtil.createCompleteBinaryTree(a);
        BeanUtil.printTreeStructure(tree, tree.val, 0);


        ArrayList<ArrayList<Integer>> res = new Solution60().Print(null);

        for (ArrayList<Integer> arr:res){

            BeanUtil.print(arr);
            BeanUtil.printReturn();


        }

    }


}
收藏 打印