首页 > 编程语言 > 详细

C++反转链表

时间:2020-02-22 16:07:50      阅读:64      评论:0      收藏:0      [点我收藏+]

建立新链表进行反转

struct ListNode{
    int val;
    struct ListNode *next;
}

class solution{
public:
    ListNode* ReverseList(ListNode* pHead){
        ListNode* pNode=pHead;     //当前节点
        ListNode* pPrev=nullptr;    //前一个节点
        ListNode* pNext=nullptr;     //后一个节点
        ListNode* pReverseHead=nullptr;    //新链表的头指针
        
        while(pNode!=nullptr){
            pNext=pNode->next;

            if(pNext==NULL)
                 pReverseHead=pNode;
            pNode->next=pPrev;
            pPrev=pNode;
            pNode=pNext;
}
            return pReverseHead;
}
}

单链表反转(不建立新的链表)

link InvertList(link head){
    link pre,phead,temp;
    phead=head;
    pre=NULL;
    while(phead!=NULL){
        temp=pre;
        pre=phead;
        phead=phead-.next;
        pre->next=templ
}
        return pre;
}

技术分享图片
技术分享图片

C++反转链表

原文:https://www.cnblogs.com/hj-SAMA/p/12345619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!