把二叉树打印成多行

题目描述

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

分析

就是层序遍历,不再赘述。

代码:

import java.util.ArrayList;
import java.util.Queue;
import java.util.LinkedList;
public class Solution {
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> resultList = new ArrayList<ArrayList<Integer>>();
if (pRoot == null) return resultList;
Queue<TreeNode> q = new LinkedList<TreeNode>();
q.offer(pRoot);
while (!q.isEmpty()) {
int size = q.size();
ArrayList<Integer> levelList = new ArrayList<Integer>();
while (size-- > 0) {
TreeNode node = q.poll();
levelList.add(node.val);
if (node.left != null) q.offer(node.left);
if (node.right != null) q.offer(node.right);
}
resultList.add(levelList);
}
return resultList;
}
}

欢迎关注公众号: FullStackPlan 获取更多干货

Copyright © 2016 - 2017 LBD's Blog All Rights Reserved.

访客数 : | 访问量 :