グラフの頂点とエッジを表す adj List を使用して、DFS で迷路を解こうとしています。全部で 12 個のノードがあります (3 行 [A、B、C] * 4 列 [0、..、3])。私のプログラムは、すべての頂点ラベル(A0、..C3)を保存することから始めます。これまでのところ、問題はありません。次に、隣接するノードをチェックします。移動が可能であれば、エッジの作成に進みます。ここで、al が間違っています.
adjList[i].add(vList[j].label);
デバッガーを使用したところ、vList[j].label
null ではなく、正しい文字列 (つまり、「B1」) が含まれていることがわかりました。null を示す唯一の変数は にある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
}
...
}
誰かが間違っていることを正しい軌道に乗せることができれば、本当に感謝します...ありがとう!