ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【Java】【力扣】102.二叉树层序遍历

2026/8/13 6:25:28 拓冰建站 浏览量
【Java】【力扣】102.二叉树层序遍历

思路

一个辅助队列(初始化队列:根节点入队)

一个节点 出队,他的左右孩子入队

循环 直到队列为空

举例

代码

 public List<List<Integer>> levelOrder(TreeNode root) {if (root==null){return new ArrayList<List<Integer>>();}Queue<TreeNode> queue = new LinkedList<>();//结果数据List<List<Integer>> resultList=new ArrayList<>();//初始化 入队queue.offer(root);//层循环while (!queue.isEmpty()) {//创建level层listList<Integer> level=new ArrayList<>();int curSize=queue.size();//队列当层循环for (int i = 0; i < curSize; i++) {//出队,并得到节点TreeNode node =queue.poll();//如果左孩子不为空,入队if (node.left!= null) {queue.offer(node.left);}//如果右孩子不为空,入队if (node.right != null) {queue.offer(node.right);}//level.add(得到的节点)level.add(node.val);}//result,添加层节点resultList.add(level);}return resultList;}

总结

1. ”if else“和 ” if if“对比

图todo

2.循环变量 .length/.size ,要注意”是否会被改变“

3.习惯性 判空(方法开头)

1-对于传进来的参数,如果为空

其他 todo待补充