要素(整数など)の最後の出現を見つけて、リストを1回(前方)トラバースするだけでこのノードを削除することは可能ですか?
6508 次
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 に答える