2011-08-06 3 views
0

可能な重複を知ることなくLINKLIST内のノードを削除:削除ノードの
Deleting a middle node from a single linked list when pointer to the previous node is not availableLINKLISTのヘッド

署名が無効削除(構造体ノード* nodeToBeDeleted)として与えられます。 リンクリストの先頭が提供されていません。 nodeToBeDeletedノードを削除する方法はありますか?

+0

ここではいくつかの非常によく似た質問があります。http://www.google.ca/search?q=delete+node+from+linked+list+site%3Astackoverflow.com –

答えて

3

現在のノードに次のノードのデータをコピーします。

現在のノードのデータを含む次のノードが削除されるノードになります。

現在のノードの次のノードを次のノードの次に設定します。

コードスニペット

void delete(struct node *nodeToBeDeleted) 
{ 
    struct node *nextNode; 
    if(nodeToBeDeleted == NULL) 
    { 
     return; 
    } 

    nextNode = nodeToBeDeleted ->next; 

    nodeToBeDeleted ->data = nextNode->data; 

    nodeToBeDeleted->next = nextNode->next; 

    delete nextNode; 

    return; 
} 
関連する問題