JZ15 反转链表

题目描述

输入一个链表,反转链表后,输出新链表的表头。

思路

反转链表不像数组,数组有索引值,但是链表只有前后连接的指针,所以比较复杂,需要对每一条指针进行修改;不能直接把指向后面的指针指向前面(这样后面的结点就都丢了),需要先把后面的节点进行保存,同时也需要将前面的指针进行保存。
设置三个指针,一个保存后面的节点,一个保存前面的节点
pre,p,post
每一次都令:
post=p->next; 保存后面的节点
p->next=pre; 令当前的指针指向前面的节点
pre=p; 依次当前节点变为前一个节点
p=post; 后一个节点变为当前节点
![图片说明](https://uploadfiles.nowcoder.com/images/20200418/690904941_1587214092558_6446EC4455C2737BBE2054E6C6AA5ADC "图片标题")

代码

class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        ListNode* pre=NULL;
        ListNode* p=pHead;
        ListNode* post=pHead;
        while(p!=NULL)
        {
            post=p->next;
            p->next=pre;
            pre=p;
            p=post;
        }
        return pre;

    }
};
全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务