删除链表中指定节点,要求时间复杂度为O(1)
思路:
(1)把要删除的节点的值与其next交换
(2)删除其next
(3)完成
算法:
1 void DeleteNode(LinkList *p){ 2 if(p->next=NULL){ 3 free(p); 4 p=NULL; 5 }else{ 6 LinkList* lk=p->next; 7 int temp=p->data; 8 p->data=lk->data; 9 lk->data=temp; 10 p->next=lk->next; 11 free(lk); 12 } 13 }