原理
重新定义一个单链表S,利用头插法使L中的节点插入S中如图
实现代码
结构体
typedef struct SqNode {
int data;
struct SqNode * Next;
}SqNode,*SqList;
功能函数
SqList ReversedElement(SqNode*L)
{
//利用头插法实现链表逆向存储
SqList s;
SqList p;
s = (SqList)malloc(sizeof(SqNode));
s->Next = NULL;
while (L->Next!=NULL)
{
p = L->Next;//记录从L链表指摘下的节点
L->Next = L->Next->Next;//使L当前节点指向下一个节点,防止链表锻炼
p->Next = s->Next;//将节点插入s中
s->Next = p;
}
free(L);//释放L头节点
return s;
}