函数接口定义:List Reverse( List L );
其中List
结构定义如下:
typedef struct Node *PtrToNode;
struct Node {
ElementType Data; /* 存储结点数据 */
PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */
第一种:
将链表L就地旋转,不需要申请新的结点,将链表的第一个元素转为最后一个,以此类推。
具体代码:
List Reverse(List L){
List old ,new,tem;
old=L;
while(old){
tem=old->Next;
old->Next=new;
new=old;
old=tem;
}
return new;
}
第二种:
申请新的结点。
具体代码:
List Reverse(List L){
List new=NULL;
List old=NULL;
while(L){
old=L->Next;
L->Next=new;
new=old;
L=old;
}
return new;
}