import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> list1 = new ArrayList<>();
//为空返回一个空数组
if (pRoot == null) return list1;
//利用队列实现层次遍历
Queue<TreeNode> q = new LinkedList<>();
q.add(pRoot);
while (!q.isEmpty()) {
ArrayList<Integer> list = new ArrayList<>();
//获取每一层的大小做循环
int count = q.size();
//循环,count使元素个数
for (int i = 0; i < count; i++) {
//取出一个元素赋给临时变量
TreeNode node = q.poll();
//添加进linst中
list.add(node.val);
//判断左子树是否为空
if (node.left != null) {
q.add(node.left);
}
//判断右子树是否为空
if (node.right != null) {
q.add(node.right);
}
}
//count循环结束则是一层结束,把list添加进list1
list1.add(list);
}
return list1;
}
}
力扣算法27——JZ78 把二叉树打印成多行
最新推荐文章于 2025-04-26 23:01:23 发布