【剑指Offer】反转链表
发布日期:2022-02-10 08:55:12 浏览次数:26 分类:技术文章

本文共 1222 字,大约阅读时间需要 4 分钟。

题目描述

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

思路

栈中毒,代码1依然是借助辅助栈完成的,代码2用三指针方法跑一遍。

代码1

/*struct ListNode {	int val;	struct ListNode *next;	ListNode(int x) :			val(x), next(NULL) {	}};*/class Solution {public:    ListNode* ReverseList(ListNode* pHead) {        if(pHead == NULL){            return NULL;        }                stack
s; ListNode* p = pHead; while(p!=NULL){ s.push(p); p=p->next; } ListNode* head = s.top(); p = head; int len = s.size(); for(int i = 1;i < len;i++){ s.pop(); p->next = s.top(); p = p->next; } p->next = NULL; return head; }};

代码2

/*struct ListNode {	int val;	struct ListNode *next;	ListNode(int x) :			val(x), next(NULL) {	}};*/class Solution {public:    ListNode* ReverseList(ListNode* pHead) {        if(pHead == NULL || pHead->next == NULL){            return pHead;        }                ListNode* p1 = NULL;        ListNode* p2 = pHead;        ListNode* p3 = NULL;                while(p2 != NULL){            p3=p2->next;            p2->next=p1;            p1=p2;            p2=p3;        }                return p1;    }};

 

转载地址:https://blog.csdn.net/hanmin822/article/details/105504656 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指Offer】链表中倒数第k个结点
下一篇:【剑指Offer】合并两个排序的链表

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月22日 15时43分08秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章