单链表的算法:
假设有一个没有头指针的单链表,一个指针指向此单链表中间的一个节点
(不是第一个,也不是最后一个),如何将该节点从单链表中删除。
void DeleteRandomNode(LinkList& pCurrent)
{
//Cant Delete the Last One.
assert (pCurrent!=NULL);
LinkList pNext=pCurrent->Next;
if(pNext!=NULL)
{
pCurrent->Next=pNext->Next;
pCurrent->data=pNext->data;
delete pNext;
}
}
int main()
{
LinkList head=(LinkList)malloc(sizeof(Node));
head->Next=NULL;
head=InitLinkList(9,head);
TraverseLinkList(head);
DeleteRandomNode(head->Next->Next);
TraverseLinkList(head);
return 0;
}