跳到主要内容

C实现单链表反转

node *iteration(node *p){
    if(p==NULL||p->next==NULL){
        return p;
    }else{
        node *pre=NULL;
        node *mid=p;
        node *end=p->next;
        while(true){
            mid->next=pre;
            if(end==NULL){
                break;
            }
            //整体右移
            pre=mid;
            mid=end;
            end=end->next;
        }
        p=mid;//原来的头指针指向mid(因为此时mid为首元节点)
        return p;
    }
}