首页 > 学院 > 开发设计 > 正文

把二叉树打印成多行

2019-11-08 03:01:59
字体:
来源:转载
供稿:网友

题目描述

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

算法描述: 利用队列先进先出的形式,将每一层按照从左到右的形式添加到队列中,然后逐层打印。

代码如下:

/** * 按层打印二叉树 * @param PRoot * @return */ ArrayList<ArrayList<Integer> > Print2(TreeNode pRoot) { ArrayList<ArrayList<Integer>> result = new ArrayList<>(); if (pRoot == null){ return result; } Queue<TreeNode> queue = new LinkedList<>(); queue.add(pRoot); while (!queue.isEmpty()){ Queue<TreeNode> temp = new LinkedList<>(); ArrayList<Integer> data = new ArrayList<>(); TreeNode node = null; while (!queue.isEmpty()){ node = queue.poll(); data.add(node.val); if (node.left != null){ temp.add(node.left); } if (node.right != null){ temp.add(node.right); } } result.add(data); queue = temp; } return result; }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表