You need to enable JavaScript to run this app. 如何使用Java的LeetCode Node类为图添加节点与叶子值 构建图用于BFS学习调试
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java的LeetCode Node类为图添加节点与叶子值 构建图用于BFS学习调试

基于给定Node类的Java邻接表图构建实操

先明确示例图的节点连接关系

你提到的参考图是LeetCode N叉结构题的通用示例,实际连通关系为:

  • 根节点值为1,直接连通3、2、4三个节点
  • 值为3的节点,直接连通5、6两个节点
  • 2、4、5、6均为无下游连通节点的叶子节点

逐步骤构建图结构

1. 初始化所有独立节点实例

按照节点值逐个创建对象,绝对不要重复创建同一个值对应的节点实例,否则会出现结构断裂:

// 逐个创建唯一的节点实例
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
Node node5 = new Node(5);
Node node6 = new Node(6);

2. 初始化邻接列表并绑定连通关系

绝大多数人第一次构建时都会踩这个坑:你提供的Node类中,单参构造方法仅赋值了节点val,没有给children属性初始化列表容器,直接调用add()会直接触发空指针异常,必须先手动给每个节点的children分配ArrayList实例:

// 给每个节点的children属性初始化空列表
node1.children = new ArrayList<>();
node2.children = new ArrayList<>();
node3.children = new ArrayList<>();
node4.children = new ArrayList<>();
node5.children = new ArrayList<>();
node6.children = new ArrayList<>();

// 逐节点绑定实际连通关系
// 值为1的根节点,邻接3、2、4
node1.children.add(node3);
node1.children.add(node2);
node1.children.add(node4);

// 值为3的节点,邻接5、6
node3.children.add(node5);
node3.children.add(node6);

// 叶子节点2、4、5、6没有下游邻接节点,保持空列表即可

用BFS遍历验证构建结果

图构建完成后,直接运行BFS遍历逻辑校验结构是否正确,刚好可以同步练习BFS的标准写法:

public static void bfsValidate(Node root) {
    if (root == null) return;
    Queue<Node> queue = new LinkedList<>();
    queue.offer(root);
    while (!queue.isEmpty()) {
        int currentLevelSize = queue.size();
        // 按层打印节点值,对比预期输出即可判断结构是否正确
        for (int i = 0; i < currentLevelSize; i++) {
            Node currNode = queue.poll();
            System.out.print(currNode.val + " ");
            // 非空判断后把当前节点的所有邻接节点入队
            if (currNode.children != null) {
                queue.addAll(currNode.children);
            }
        }
        System.out.println();
    }
}

// 调用方法验证,预期输出为:
// 1 
// 3 2 4 
// 5 6
bfsValidate(node1);

构建时的其他常见踩坑点

  • 绑定邻接关系时不要直接new节点:比如写node1.children.add(new Node(3)),后续单独操作的node3和这个绑定在node1里的节点是两个独立实例,会导致整个图结构断裂
  • BFS遍历一定要加children的非空判断,兼容构造过程中可能出现的列表为null的情况

内容的提问来源于stack exchange,提问作者RajB009

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 20:15:03