题目:给定一个节点数为 n 二叉树,要求从上到下按层打印二叉树的 val 值,同一层结点从左至右输出。每一层输出一行。
思路:层次遍历。
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.*;
public class Solution {
ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
if(pRoot == null)
return new ArrayList<ArrayList<Integer>>();
Queue<TreeNode> queue = new LinkedList<>();
queue.add(pRoot);
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
while(queue.size() > 0){
int size = queue.size();
ArrayList<Integer> nowResult = new ArrayList<>();
for(int i = 0;i < size;i++){
TreeNode temp = queue.poll();
nowResult.add(temp.val);
if(temp.left != null){
queue.add(temp.left);
}
if(temp.right != null){
queue.add(temp.right);
}
}
result.add(nowResult);
}
return result;
}
}