方法1:迭代法
//迭代方法
List Reverse( List L )
{
List pre,curr,next;
pre=NULL;
curr=L;
while(curr)
{
next=curr->Next;
curr->Next=pre;
pre=curr;
curr=next;
}
return pre;
}
//1.初始化
//2.next变化
//3.pre,curr后移
1.初始化pre,curr,使pre=NULL,curr=头节点(L)
2.如果让pre,curr向后移动,那么需要next存储一下下一个节点(curr->Next),然后curr->Next=pre;后移指针pre,curr;
3.当curr==NULL时,此时pre为最后一个节点,并且pre是头节点,即返回pre即可
方法2:递归法
//递归方法
List Reverse( List L )
{
if(L==NULL||L->Next==NULL)return L;
List p=Reverse(L->Next);
L->Next->Next=L;
L->Next=NULL;
return p;
}
//1.递归出口
//2.向下(递
//3.处理(归
//4.返回p
1.当L空链表 或 L只有一个元素,返回L本身
2.递归L->Next,即下一个节点和以后的节点
3.处理:让本节点的下一个节点的指针指向本节点,本节点的指针指向NULL
4.返回P