本文共 1287 字,大约阅读时间需要 4 分钟。
为了解决这个问题,我们需要对给定的二叉树进行层次遍历,并将结果按层顺序返回。层次遍历是指从根节点开始,从左到右逐层访问每个节点。我们可以使用队列来实现层次遍历,具体步骤如下:
这种方法利用队列来保持当前层次的节点状态,并在每次循环中处理所有当前层次的节点,逐层记录节点值,从而实现了层次遍历。
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;class Solution { public List
> levelOrder(TreeNode root) { List
> result = new ArrayList<>(); if (root == null) { return result; } Queue queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { int levelSize = queue.size(); List currentLevel = new ArrayList<>(); for (int i = 0; i < levelSize; i++) { TreeNode node = queue.poll(); currentLevel.add(node.value); if (node.left != null) { queue.add(node.left); } if (node.right != null) { queue.add(node.right); } } result.add(currentLevel); } return result; }}
这种方法通过逐层处理节点,利用队列来维护当前层次的节点状态,从而高效地完成了层次遍历任务。
转载地址:http://khgyk.baihongyu.com/