1.题目:牛客网NC78(反转链表)

描述
输入一个链表,反转链表后,输出新链表的表头。
示例1
输入:{1,2,3}
返回值:{3,2,1}

2.就地逆转法反转链表
只需要两个指针beg和end,解题思路参考单链表反转详解(4种算法实现)
本文是对单链表反转详解(4种算法实现)中提到的“就地扭转法”的详细扩充。

具体步骤,见笔者画的示意图(字迹稍潦草,不印象理解内容

就地逆置法则是直接对原链表做修改,从而实现将原链表反转。
步骤详解(看图食用更佳

第一步:申请两个指针beg和end(开始和结束),令beg指向第一个结点,另end指向beg的下一个结点:

beg=phead ;//(phead为链表表头)
end=beg->next;

第二步:断开1和2的连接,把1指向3即可

beg->next=end->next;

第三步:建立2和1的连接:把2指向1

beg->next=end->next;

第四步:把表头指针从1转移到2

head=end;

第五步:断开2和3的连接

end=beg->next

此时反转后的结果如图所示。2->1->3,继续上述操作,把3反转到2的前面去。
核心代码:

class Solution {public:ListNode* ReverseList(ListNode* pHead) {ListNode* beg = NULL;ListNode* end = NULL;if(pHead == NULL || pHead->next == NULL)//空链或单节点直接返回头指针return pHead;beg = pHead;end = beg->next;while(end != NULL){beg->next = end->next;end->next = pHead;pHead = end;end = beg->next;}return pHead;}
};

反转链表详细讲解(就地逆置法)相关推荐

  1. 反转链表-就地逆置法

    (1)思想:就地逆置法和头插法的实现思想类似,唯一的区别在于,头插法是通过建立一个新链表实现的,而就地逆置法则是直接对原链表做修改,从而实现将原链表反转. (2)实现:在原链表的基础上做修改,需要额外 ...

  2. 单链表的应用 就地逆置

    [问题描述]试实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1,a2,a3....an)逆置为(an...a3,a2,a1).    [分析]就地逆置就是不需要额外申请结点空间,只需要利用原 ...

  3. python实现带头结点的单链表的就地逆置_设头指针为head,编写算法实现带头结点单链表head的就地逆置...

    链表问题大全!!!刚出炉的还热乎呢!! #include #include typedef struct node { int nDate; struct node *pstnext; }Node; ...

  4. 头插法逆置单向链表c语言,单链表的逆置(头插法和就地逆置)

    今天课间的时候偶然看到了一个面试题:单链表的逆置,看了题解感觉乖乖的,貌似和以前看的版本不搭,于是重新进行了一番探究 单链表的逆置分为两种方法:头插法和就地逆置法,这两种方法虽然都能够达到逆置的效果, ...

  5. java实现单链表就地逆置,单链表的就地逆置讲解

    { List *q; List *p = L->next; L -> next = NULL; //单链表就地逆置 while (p != NULL) { q = p -> next ...

  6. 【单链表】单链表的就地逆置

    编写算法实现带头结点单链表seqlist的就地逆置,即利用原带头结点单链表seqlist的结点空间,把数据元素顺序排反 题目分析: 在前面2-18讲了顺序表的就地逆置,但单链表的就地逆置与顺序表有所不 ...

  7. 对带头结点的单链表实现就地逆置的算法分析

    试写一算法,对单链表实现就地逆置. 实现下列函数: void Inverse(LinkList &L);  /* 对带头结点的单链表L实现就地逆置 */ 单链表类型定义如下: typedef ...

  8. 实现带头结点的单链表元素就地逆置

    每日数据结构基础题2-1 题目:试编写在带头结点的单链表L中对链表的元素进行逆置(所谓就地是指辅助空间复杂度为O(1)) 方法一 完整代码如下: 方法二 完整代码如下: 题目:试编写在带头结点的单链表 ...

  9. 6-1 带头结点的单链表就地逆置 (10 分)

    6-1 带头结点的单链表就地逆置 (10 分) 本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数.L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要 ...

最新文章

  1. SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】远程桌面 3389 Windows 2016
  2. 不同系统平台下Java默认的安装路径
  3. Linux安装pecl和pear
  4. Python学习笔记:TypeError: not all arguments converted during string formatting
  5. erlang精要(3)-变量、原子与布尔代数
  6. VS2010 + OpenCV 2.4.1 环境配置
  7. 把一个不等于0的数最右侧的1提取出来
  8. 【Python】Python库之数据分析
  9. 人车物跟踪在另外的机器上跑不起来
  10. Jquery.dataTables分页排序参数详解
  11. Typora for Mac(文本编辑器)
  12. Fisco Bcos如何通过合约地址找到合约代码完美解决方案
  13. 工地人脸识别门禁考的出现对智慧工地提出解决方案
  14. IDEA价格对程序员来说九牛一毛,为啥这么多人用破解版?
  15. AI:大力出奇迹?Bigger is better?AI下一代浪潮?—人工智能的大语言模型(LLMs)/预训练大模型的简介、发展以及未来趋势
  16. 实验一 路由器的基本管理
  17. java+http文件夹上传
  18. 以考代评职称需要聘任嘛_如何以正确的方式聘用:工程师对技术招聘的看法
  19. 108页《SpringBoot 学习笔记完整教程》PDF附下载
  20. SQLyog的下载安装与配置(转载)

热门文章

  1. 黑客逆向破解基础-3:如何识别程序加的什么壳
  2. Win平台ZIP版本MySql启动问题
  3. python列表前加星号是什么_Python中的星号:用途及使用方法(1)
  4. P1395 会议 题解
  5. 赵铁安烧饼机器人_河南农民发明烧饼机器人历时六年花费达60万元,有人出20万想买...
  6. 山东标梵网站制作项目启动流程详解
  7. 中国大学慕课公开课-《视听语言》-学习笔记-2
  8. 互动媒体技术——《代码本色》习作二:向量
  9. PaddingError: Placeholder of length ‘30‘ too short in package
  10. Kotlin 非对称加密RSA