《剑指offer》-反转链表

简介: 输入一个链表,反转链表后,输出链表的所有元素。题目考察链表反转,但是挖坑不是反转本身,而是题目的描述再次不清晰:什么叫“反转链表后输出链表所有元素”?给的代码框架只有一个函数ReverseList,返回值类型是ListNode*,输出不输出和我有什么关系?class Solution{publ...

输入一个链表,反转链表后,输出链表的所有元素。

题目考察链表反转,但是挖坑不是反转本身,而是题目的描述再次不清晰:什么叫“反转链表后输出链表所有元素”?给的代码框架只有一个函数ReverseList,返回值类型是ListNode*,输出不输出和我有什么关系?

class Solution{
public:
    ListNode* ReverseList(ListNode* pHead){
        if (pHead == NULL){
            return NULL;
        }
        if (pHead->next == NULL) {
            return pHead;
        }

        ListNode* pBefore = pHead;
        ListNode* p = pHead->next;
        ListNode* pAfter = p->next;

        while (pAfter != NULL){
            p->next = pBefore;
            pBefore = p;
            p = pAfter;
            pAfter = pAfter->next;
        }
        p->next = pBefore;
        pHead->next = NULL;   //这句一定要加上,因为逆序后再遍历,需要判断出链表结束,也就是节点的next等于NULL
        return p;
    }
};
目录
相关文章
|
6月前
《剑指offer》——合并两个排序的链表
《剑指offer》——合并两个排序的链表
|
6月前
剑指 Offer 35:复杂链表的复制
剑指 Offer 35:复杂链表的复制
44 0
|
23天前
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
40 0
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
Leetcode题目"剑指 Offer 22. 链表中倒数第k个节点"的Python解决方案,使用双指针法找到并返回链表中倒数第k个节点。
50 5
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 18. 删除链表的节点
Leetcode题目"剑指 Offer 18. 删除链表的节点"的Python解决方案,通过使用双指针法找到并删除链表中值为特定数值的节点,然后返回更新后的链表头节点。
40 4
|
6月前
|
Java C语言
剑指offer(牛客)——合并两个排序的链表
剑指offer(牛客)——合并两个排序的链表
37 1
|
6月前
|
存储 Java C语言
剑指offer(牛客)——从尾到头打印链表
剑指offer(牛客)——从尾到头打印链表
39 1
|
6月前
【一刷《剑指Offer》】面试题 17:合并两个排序的链表
【一刷《剑指Offer》】面试题 17:合并两个排序的链表
|
6月前
【一刷《剑指Offer》】面试题 16:反转链表
【一刷《剑指Offer》】面试题 16:反转链表
|
6月前
【一刷《剑指Offer》】面试题 15:链表中倒数第 k 个结点
【一刷《剑指Offer》】面试题 15:链表中倒数第 k 个结点