2017-05-27 10 views
0

LinkedListクラスを使用せずに、JavaのLinkedリストをゼロから実装しようとしています。しかし、コードはNULLポインタ例外を返しています。私が間違っているなら、私を修正してください。私が得ている出力は1 2 4 5で、次にヌルポインタの例外です。リンクリストコードを使用したキューの実装でnullポインタ例外が返される

package example2; 

    class Node 
    { 
     int data; 
     Node next; 
     Node(int data) 
     { 
      this.data=data; 
     } 
    } 


    public class ex { 

     Node last=null,first=null; 

     private void push(int item) 
     { 
       if(last==null) 
       { 
        first=last=new Node(item); 

       } 
       else 
       { 
        Node n = new Node(item); 
        last.next=n; 
        n.next=null; 
        last=n; 
       } 

     } 

     private void pop() 
     { 
      first=first.next; 
     } 

     public void disp() 
     { 
      while(first!=null) 
      { 
       System.out.println(first.data); 
       first=first.next;    
      } 
     } 

     public static void main(String []args) 
     { 
      ex e=new ex(); 
      e.push(1); 
      e.push(2); 
      e.push(4); 
      e.push(5); 
      e.disp(); 
      e.pop(); 
      e.disp(); 
     } 
    } 

答えて

2

あなたdisp()方法はfirstの値を変更します。 firstを反復してその値を変更する代わりに、一時参照を使用して反復する代わりに、

public void disp() { 
    Node current = first; //Start with "first" 
    while (current != null) { 
     System.out.println(current.data); 
     current = current.next; //Move "current" to next node 
    } 
} 
関連する問題