本文共 1317 字,大约阅读时间需要 4 分钟。
要解决这个问题,我们需要对二叉树进行层序遍历。层序遍历是指从树的根节点开始,逐层从左到右访问所有节点,直到遍历完所有节点。常用方法是广度优先搜索(BFS),使用队列来辅助实现。
import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.LinkedList;public class Solution { public List > levelOrder(TreeNode root) { List > result = new ArrayList<>(); Queue queue = new LinkedList<>(); if (root == null) { return result; } queue.offer(root); while (!queue.isEmpty()) { int num = queue.size(); List level = new ArrayList<>(); for (int i = 0; i < num; i++) { TreeNode current = queue.poll(); level.add(current.value); if (current.left != null) { queue.offer(current.left); } if (current.right != null) { queue.offer(current.right); } } result.add(level); } return result; }}
ArrayList 来存储每一层的节点值。LinkedList 作为队列,用于广度优先遍历。num,表示当前层的节点数。这种方法确保了每一层的节点按顺序被访问和记录,得到的结果符合层序遍历的要求。
转载地址:http://wehiz.baihongyu.com/