单链表原地逆置,来看看我做的对不对


LinkList Reverse(LinkList L){
    LNode *p = L->next;//打工仔
    LNode *s = p->next;//后继
    p->next = NULL;
    while (s != NULL){
        p = s;//①
        s = s->next;//②
        p->next = L->next;//③
        L->next = p;//④
    }
    return L;
}

img

修改如下,供参考:

LinkList Reverse(LinkList L){
    LNode *p = L->next;//打工仔
    LNode *s = NULL;   //p->next;//后继
    L->next = NULL;    //p->next = NULL;
    while (p != NULL){ //(s != NULL)
        s = p->next;
        //s = s->next;//②
        p->next = L->next;//③
        L->next = p;//④
        p = s;//①
    }
    return L;
}