链表倒置 (不额外开辟另一块空间)

题目大意:

链表倒置

基本思路:

一个指针只想当前的表头,另一个不断边插边后移,最后处理下新的表头和表尾即可;

代码如下:

LinkList RverseList(LinkList L){
    LinkList head=L;
    if(L->next==NULL||L->next->next==NULL){
        return head;
    }
    LinkList t=NULL,p=head->next,q=head->next->next;
    while(q!=NULL){
        t=q->next;
        q->next=p;
        p=q;
        q=t;
    }
    head->next->next=NULL;//设置新的表尾
    head->next=p;//设置新的表头
    return head;
}

  

原文地址:https://www.cnblogs.com/imzscilovecode/p/8006429.html