LeetCode 92. Reverse Linked List II

Solution1:
参考网址:http://www.cnblogs.com/grandyang/p/4306611.html
思路:
对于链表的问题,根据以往的经验一般都是要建一个dummy node,连上原链表的头结点,这样的话就算头结点变动了,我们还可以通过dummy->next来获得新链表的头结点。这道题的要求是只通过一次遍历完成,就拿题目中的例子来说,变换的是2,3,4这三个点,那么我们可以先取出2,用front指针指向2,然后当取出3的时候,我们把3加到2的前面,把front指针前移到3,依次类推,到4后停止,这样我们得到一个新链表4->3->2, front指针指向4。对于原链表连说,有两个点的位置很重要,需要用指针记录下来,分别是1和5,因为当2,3,4被取走时,原链表就变成了1->5->NULL,要把新链表插入的时候需要这两个点的位置。1的位置很好找,因为知道m的值,我们用pre指针记录1的位置,5的位置最后才能记录,当4结点被取走后,5的位置需要记下来,这样我们就可以把倒置后的那一小段链表加入到原链表中。代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *reverseBetween(ListNode *head, int m, int n) {ListNode *dummy = new ListNode(-1);dummy->next = head;ListNode *cur = dummy;ListNode *pre, *front, *last;for (int i = 1; i <= m - 1; ++i) cur = cur->next;pre = cur;last = cur->next;for (int i = m; i <= n; ++i) {cur = pre->next;pre->next = cur->next;cur->next = front;front = cur;}cur = pre->next;pre->next = front;last->next = cur;return dummy->next;}
};

【??链表】LeetCode 92. Reverse Linked List II相关推荐

  1. LeetCode 92. Reverse Linked List II

    92. Reverse Linked List II Reverse a linked list from position m to n. Do it in one-pass. 将位置m的链接列表反 ...

  2. (LeetCode 92)Reverse Linked List II

    Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1-> ...

  3. LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题

    题目地址:Reverse Linked List II - LeetCode Reverse a linked list from position m to n. Do it in one-pass ...

  4. 92. Reverse Linked List II(反转链表II)

    题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 思路: 先找到需要反转部分的首部,然后依次压栈, 最后出栈,连接即可. AC 2m ...

  5. 92. Reverse Linked List II

    题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 解题思路: 1 /** 2 * Definition for singly-lin ...

  6. let 92. Reverse Linked List II

    主题思想: 链表翻转: 链表翻转, 链表翻转经典代码: public ListNode reverseList(ListNode head){if(head==null||head.next==nul ...

  7. LeetCode | Reverse Linked List II

    这道链表反转题也是搞的我焦头烂额,好久没有写链表了,注意记忆这些 Reverse Linked List II QuestionEditorial Solution My Submissions To ...

  8. Leetcode 206. Reverse Linked List

    Similar Questions Reverse Linked List II Binary Tree Upside Down Palindrome Linked List 思路:链表反转. 解法一 ...

  9. LeetCode 206 Reverse Linked List--反转链表--迭代与递归解法--递归使用一个临时变量,迭代使用3个

    此题链接:Reverse Linked List - LeetCode Reverse a singly linked list. Example: Input: 1->2->3-> ...

最新文章

  1. Powershell管理系列(十)邮件联系人及邮件用户的管理
  2. 【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
  3. 数据中台(一)数据资源规划与获取
  4. python编程前面需要一个空格怎么做_初学python,不明白代码之间时空格的用处
  5. android udp和tcp区别,UDP模式与TCP模式的区别
  6. android studio cmake opencv_Mac下安装及配置OpenCV环境(Xcode)
  7. javascript实现自动添加文本框功能
  8. (教程)2020最新windows10/anaconda/pytorch-gpu环境配置(附CUDA/cuDNN配置)
  9. VMware Workstation 网络设置解释三种
  10. java http响应头,java – HTTP响应标头内容处理附件
  11. 移动通信matlab实现,现代移动通信中的调制技术研究及Matlab实现
  12. 【优化算法】金鹰优化算法(GEO)【含Matlab源码 187期】
  13. DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路
  14. 正则表达式中的?表示匹配前面的正则表达式0次或者1次
  15. 华为存储发展史:从筚路蓝缕到星辰大海
  16. java中设置环境变量时,bin和lib的作用是什么?
  17. 令克软件再推OpenAPI与MAS系统服务,强大引擎赋能券商多元化发展
  18. poi给Word添加“下一页”
  19. CSS之text-overflow--怎么让多余的文字不显示或者以省略号表示
  20. 2021-04-23

热门文章

  1. 反卷积可视化工具--deconv-deep-vis-toolbox
  2. Failed to meta-introspect annotation interface org.springframework.web.bind.annotation.RequestBody:
  3. Couldn't find executable named map_saver below /opt/ros/indigo/share/map_server
  4. 文件与目录的默认权限与隐藏权限
  5. python sendto(右键发送文件到执行的bat)功能的实现
  6. python编写脚本教程_python编写一个会算账的脚本的示例代码
  7. java动态字段排序_Java8对多个字段排序
  8. 华三防火墙配置端口地址转换_H3C防火墙配置命令
  9. 几何畸变的类型_第七讲 几何纠正(摄影测量与遥感).pdf
  10. java数组删除数组元素_如何在Java中删除数组元素