一、知识点:
二叉树、广度搜索优先(BFS)
二、文字分析:
使用了广度优先搜索(BFS)算法来遍历二叉树的每一层,并将每层的牛的编号拼接成字符串。我们使用一个队列来保存当前层的节点,并不断从队列中取出节点进行处理。在处理每个节点时,我们将其编号添加到当前层的字符串中,并将其左子节点和右子节点(如果存在)加入队列中。当队列为空时,所有层的节点都已经处理完毕,我们将当前层的字符串添加到结果列表中。
该程序的时间复杂度为 O(N),空间复杂度为 O(N)。其中 N 是二叉树中的节点数。
三、编程语言:
java
四、正确代码:
import java.util.*; public class Solution { public String[] levelOrder(TreeNode root) { List<String> result = new ArrayList<>(); if (root == null) { return new String[0]; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { int size = queue.size(); StringBuilder level = new StringBuilder(); for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); level.append(node.val); if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } result.add(level.toString()); } String[] resArray = new String[result.size()]; resArray = result.toArray(resArray); return resArray; } }