2016-11-09 15 views
-1

現在、ユーザーが入力した位置からデータを挿入および削除する必要のあるリンクリストを作成中です。しかし、私は挿入にいくつかのエラーに出会った。私はオンラインで見つけたコードに従っていますが、どこに問題があるのか​​分かりません。入力したデータはリンクリストに挿入されませんでした。リンクリストを表示するたびにNULLを表示するたびにデータを挿入しますそれ。私は誰かが、問題はここにある何の感謝を私に言うことを願っリンクされたリストでユーザーが入力した位置にデータが挿入されていませんJava

class Node{ 
int num; 
Node next; 

Node() 
{ 
    num=0; 
    next=null; 
} 

Node(int num, Node next) 
{ 
    this.num=num; 
    this.next=next; 
} 

int getNum() 
{ 
    return num; 
} 

Node getNext() 
{ 
    return next; 
} 

void setNext(Node next) 
{ 
    this.next=next; 
} 
} 

public void addItemRequest(Node head, int item, int position) 
    { 
    Node prevNode = head; 
    Node newNode = new Node(item,null); 

    if (head==null) 
    { 
     return; 
    } 

    if (position == 0) 
    { 
     newNode.next = head; 
     return; 
    }  

    int count = 0; 
    while (count < position -1 && head.next != null) 
    { 
     head = head.next;   
     count++;  
    } 

    Node currNode = head.next; 
    head.next = newNode; 
    head = head.next; 
    head.next = currNode;  
    return; 
} 

ここでNodeクラスのための私のコードは次のとおりです。

は、ここに挿入するための私のコードです。

+1

あなたの 'Node'コンストラクタのコードを投稿してください... – brso05

+1

あなたのNodeクラスをチェックしてください。おそらく例外がスローされるメソッドがあります。 – beatrice

+0

@beatriceああそうだね。私はそれを削除し、コードをNode newNode = new Node(item、null)に変更しました。しかし、まだリストにデータを保存していないのはなぜですか? – Acetamide

答えて

-1

あなただけそれが今、新しい

public void addItemRequest(Node head, int item, int position) 
{ 
    Node prevNode = head; 
    Node newNode = new Node(item,null); 

    if (head==null) 
    { 
     head=newNode; 
     return; 
    } 

    if (position == 0) 
    { 
     newNode.next = head; 
     head = newNode; 
     return; 
    }  

    int count = 0; 
    while (count < position -1 && head.next != null) 
    { 
     prevNode = prevNode.next;   
     count++;  
    } 
    newNode.next = prevNode.next; 
    prevNode.next = newNode;  
    return; 
} 

チェックで一つだけ一時ノードで簡単に

ゴーを動作するグローバル変数としてheadをしなければなりません。私は答えを修正しました。 head=newNode;が追加されましたif (position == 0)

あなたが本当に感謝したい場合は、答えを受け入れてupvoteしてください。あなたのような人も簡単に解決策を見つけることができます。

+0

'head = newNode;'はローカル変数に代入されていても意味がありません。 – talex

+0

コメントをいただきありがとうございます。私はそれに応じて更新しました。 – jafarbtech

+0

'head'グローバルを作成するための簡単なアドバイスは役に立ちません。彼が与えた情報でOPを手助けすることは明らかに不可能です。これは、そのような幅広い勧告を与えるべきではありません。 OPのような経験の浅い人にとっては、それは単に歌を悪化させます。 – talex

関連する問題