相关代码 |
|
2.31② 假设某个单向循环链表的长度大于1,且表 中既无头结点也无头指针。已知s为指向链表中某个 结点的指针,试编写算法在链表中删除指针s所指结 点的前驱结点。 实现下列函数: ElemType DeleteNode(LinkList s); /* 删除指针s所指结点的前驱结点,并返回被删结点的元素值 */ 单链表类型定义如下: typedef struct LNode{ ElemType data; struct LNode *next; } LNode, *LinkList; ElemType DeleteNode(LinkList s) /* 删除指针s所指结点的前驱结点,并返回被删结点的元素值 */ { struct LNode *p,*q;p=s; while(p->next->next!=s) p=p->next;q=p->next; p->next=s;return q->data; }