假设在长度大于1的循环链表中,既无头结点,也无头指针,p为指向该链表中某个结点的指针。设计一个算法,删除p指向结点的前趋结点。

admin2014-10-20  31

问题 假设在长度大于1的循环链表中,既无头结点,也无头指针,p为指向该链表中某个结点的指针。设计一个算法,删除p指向结点的前趋结点。

选项

答案已知指向这个结点的指针是P,那么要删除这个结点的直接前趋结点,就要找到一个结点,它的指针域是指向P的直接前趋,然后用后删结点法,将结点P的直接前趋结点删除即可。算法如下: void DeleteNode(ListNode*D) {//删除单循环链表中指定结点的直接前趋结点 ListNode*s,*q; s=p: while(S->next->next!=p) S=S一>next; //删除结点 q=s一>next; s一>next=q一>next; free(s);//释放空间 } 注意:若单循环链表的长

解析
转载请注明原文地址:https://kaotiyun.com/show/HlvR777K
0

最新回复(0)