假设这是需要反转的链表,那么基本思路就是每次都把大一些的一个放到头指针的后面
即第一次把2放到1的前面,这个可以通过把1的next指向3,2的next指向1,再把头节点的next指向2
这样就得到了head---2---1---3---4
然后再把一下个大一点的数这样操作,即为把3放到头指针后面,把1的next指向4,把3的next指向2,把head的next指向3
这些操作只需要利用一些新建的临时指针即可
得到head---3---2---1---4
最后同理,操作后得到head---4---3---2---1
代码如下:(包含头节点)
List Reverse( List L )
{
PtrToNode temp=NULL;
PtrToNode p=NULL;
temp=L->Next;
if(temp==NULL)
return L;
while(temp->Next!=NULL){
p=temp->Next;
temp->Next=p->Next;
p->Next=L->Next;
L->Next=p;
}
return L;
}