ヘッダレス単一チェーンテーブルの非エンドノード削除


ヘッドレス単一チェーンテーブルを削除する非テールノード解析:たとえばチェーンテーブル1->2->3->4ノード3を削除する場合は、ノード4を前に移動し、ノード3を削除します.
void EraseNon Tail(ListNode* pos)
{
  assert (pos&& pos->next);
  ListNode* next=pos->next;
  pos->data=next->data;
  pos->data=next->next;
  free(next);
}

テスト:
void TestList1()
{
   ListNode*List=NULL;
   PushBack(&List,1);
   PushBack(&List,2);
   PushBack(&List,3);
   PushBack(&List,4);
}

ListNode*pos=Find(List,3);
EraseNonTail(pos);