【剑指offer】60 把二叉树打印成多行
- 题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
示例1
输入
{8,6,10,5,7,9,11}
返回值
[[8],[6,10],[5,7,9,11]]
- 解题思路
按层遍历,cnt 控制每层的节点数
- Java实现
import java.util.ArrayList;/*public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}*/import java.util.Queue;import java.util.LinkedList;public class Solution {ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {ArrayList<ArrayList<Integer>> ret = new ArrayList<>();Queue<TreeNode> queue = new LinkedList<>();queue.add(pRoot);while (!queue.isEmpty()) {ArrayList<Integer> list = new ArrayList<>();int cnt = queue.size();while (cnt-- > 0) {TreeNode node = queue.poll();if (node == null)continue;list.add(node.val);queue.add(node.left);queue.add(node.right);}if (list.size() != 0)ret.add(list);}return ret;}}
