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

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

题目描述

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

思路

栈中毒,代码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】合并两个排序的链表

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2023年03月05日 21时44分36秒

关于作者

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

最新文章

第二章:电子商务交易模式 2019-12-24 14:49:18
第三章:电子商务平台选择 2019-12-24 14:49:18
第三章:电子商务平台选择2 2019-12-24 14:49:18
scratch界面介绍 2019-12-24 14:49:16
scratch弹球需求分析 2019-12-24 14:49:16
弹球游戏制作1 2019-12-24 14:49:16
弹球制作2 2019-12-24 14:49:16
弹球制作3之编程 2019-12-24 14:49:16
弹球游戏4 2019-12-24 14:49:17
弹球游戏5 2019-12-24 14:49:17
Mysql安装——解压包直接安装 2019-12-24 14:49:14
BMC REDFISH 2019-12-24 14:49:14
Dubbo原理<一> Dubbo SPI详解 2019-12-24 14:49:15
dubbo原理<二> 流程入口+ 参数配置 2019-12-24 14:49:15
Dubbo原理<三> 服务暴露 2019-12-24 14:49:15
Dubbo原理<四> 服务引用 2019-12-24 14:49:15
《初识Scratch》教学设计 2019-12-24 14:49:15
Java经典实例:处理单个字符串 2019-12-24 14:49:13
Java数组排序和查找 2019-12-24 14:49:13
Sql常用语法 2019-12-24 14:49:13