2015-05-30 120 views
0

我想在java中創建多個鏈接列表,但在我得到NullPointerException的行之一,我無法找出出現這種錯誤的原因。在Java中的多個鏈接列表

import java.util.*; 

class node{ 
int data; 
node link; 

public node(){ 
    data = 0; 
    link = null; 
} 
} 

public class ll{ 
    static node add(node head[], int x){ 
    node temp = new node(); 
    System.out.println("Enter value"); 
    temp.data = new Scanner(System.in).nextInt(); 
    temp.link = head[x].link; 
    head[x].link = temp; 
    return head[x]; 
    } 


public static void main(String []args){ 
    int m =0; 
    int x = 0; int flag = 0; 
    System.out.println("Enter the size of index"); 
    m = new Scanner(System.in).nextInt(); 
    node []head = new node[m]; 
    while(x<head.length){ 
     head[x].data = 0; //error arises here 
     head[x].link = null; 
     x++; 
    } 
    System.out.println(head[0].data); //error arises here. 


} 
} 
+1

'node add'方法不應該是'static'。您應該聲明並初始化類「ll」的新實例以啓動新的鏈接列表。這個'll'類需要一個'node head'字段。如果你想擁有多個鏈表,那麼創建一個集合(數組,'ll','List','Set'或其他),這些集合都是你的'll'類的實例。 –

+1

請遵循編碼規則:給予適當的,有意義的名字,以大寫字母開頭(「ll」不是一個,很難判斷它是否是el-el,ii或11 ...),也可以縮進他們的父類體內的方法。 – RealSkeptic

回答

0

那是因爲head[x]/head[0]包含null參考。

0

您已經定義了一個節點陣列,但不與任何填充,所以

head[x] 

指空項目,並用它來訪問一個NPE的。數據域結果。