二维链表数组

  • 本文关键字:链表 数组 二维 java
  • 更新时间 :
  • 英文 :


我正在尝试将2D链表数组设置为:

private LinkedList<Integer>[] adjLst;
graph(int n){
    noOfNodes = n-1;
    for(int i=0;i<=noOfNodes;i++){
        adjLst[i] = new LinkedList<Integer>();
    }
}

但是,当我在我的主要课程中称之为:时

graph g =new graph(13);

它正在引发NullPointerException?

您从未初始化过adjLst,因此它仍然具有默认值null。你需要这样的东西:

adjLst = new LinkedList<Integer>[noOfNodes + 1];
for (int i = 0; i <= noOfNodes; i++) {
    adjLst[i] = new LinkedList<Integer>();
}

请注意,现在还不清楚为什么要从n中减去1,然后上升到并包括这个值。我会发现这更容易理解:

// Note: fixed case of class. Please follow Java naming conventions
Graph(int n){
    adjLst = new LinkedList<Integer>[n];
    for (int i = 0; i < n; i++) {
        adjLst[i] = new LinkedList<Integer>();
    }
}

最新更新