我试图通过 DFS 解决迷宫,使用 adj List 来表示图的顶点和边。总共有 12 个节点(3 rows[A,B,C] * 4 cols[0,..,3])。我的程序首先保存所有顶点标签(A0,..C3),到目前为止一切顺利,然后检查相邻节点,也没有问题,如果可以移动,它会继续创建边,这里是哪里出错了.
adjList[i].add(vList[j].label);
我使用了调试器,发现它vList[j].label
不是空的,它包含一个正确的字符串(即“B1”)。唯一显示 null 的变量是 in adjList[i]
,这让我相信我错误地实现了它。我就是这样做的。
public class GraphList {
private ArrayList<String>[] adjList;
...
public GraphList(int vertexcount) {
adjList = (ArrayList<String>[]) new ArrayList[vertexCount];
...
}
...
public void addEdge(int i, int j) {
adjList[i].add(vList[j].label); //NULLPOINTEREXCEPTION HERE
}
...
}
如果有人能指出我在正确的轨道上重新考虑出了什么问题,我会非常感激......谢谢!