0

要素(整数など)の最後の出現を見つけて、リストを1回(前方)トラバースするだけでこのノードを削除することは可能ですか?

4

4 に答える 4

5

はい。

トラバーサルで探している値が見つかるたびに、前のエントリを覚えておいてください。トラバーサルが完了すると、最後に記憶されたエントリに、削除するエントリへのリンクが含まれます。これで十分に削除できます。

于 2011-09-30T00:29:31.453 に答える
1
public void DeleteLastOccurenceOfKey(Node head, int key) 
{
    Node current=head;
    Node prev=null;
    Node temp=null;

    while(current!=null)
    {
        if(current.next!=null && current.next.data==key)
        {
        prev=current;
        temp=current.next;
        }
        current=current.next;
    }
    prev.next=temp.next;

}

DeleteLastOccurenceOfKey(head,25);

I/P:5 10 15 25 35 25 40 O/P:5 10 15 25 35 40

于 2017-07-25T06:44:29.683 に答える