有一个带头结点的单链表L,怎样设计一个算法将其所有元素逆置?

2024-11-20 15:16:38
推荐回答(1个)
回答(1):

struct Node
{ /* 单链表类型声明 */
ElemType data; /* 数据域 */
struct Node *next; /* 指针域 */
};
void Reverse(Node *head)
{ /* 从第一结点开始颠倒 */
Node *p, *q;
p = head->next; /* p 指向第一个结点 */
head->next = NULL; /* 断开链表表头 */
while (p != NULL)
{
q = p;
p = p->next; /* 当前结点指针后移 */
q->next = head->next; /* 表头插入 */
head->next = q;
}
}