链表_逆置

//不包含头结点

typedef struct LNode{
    int data;
    LNode* next;
}LNode,*LinkList;

LinkList reverse(LinkList head)
{
    if(head==nullptr||head->next==nullptr)//头结点检测;
        return head;
    
    LinkList cur=nullptr;
    LinkList pre=nullptr;
    LinkList next=nullptr;
    //初始化指针
    pre=head;
    cur=pre->next;
    //节点逆置
    while (cur) {
        next=cur->next;//保存当前节点的下一个节点
        cur->next=pre;
        pre=cur;
        cur=next;
        
    }
    //处理头结点
    head->next=nullptr;
    head=pre;
    return head;
    
}

 

posted @ 2013-10-07 11:00  helo_blog  阅读(126)  评论(0编辑  收藏  举报