【??链表】LeetCode 92. Reverse Linked List II
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相关推荐
- 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的链接列表反 ...
- (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-> ...
- 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 ...
- 92. Reverse Linked List II(反转链表II)
题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 思路: 先找到需要反转部分的首部,然后依次压栈, 最后出栈,连接即可. AC 2m ...
- 92. Reverse Linked List II
题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 解题思路: 1 /** 2 * Definition for singly-lin ...
- let 92. Reverse Linked List II
主题思想: 链表翻转: 链表翻转, 链表翻转经典代码: public ListNode reverseList(ListNode head){if(head==null||head.next==nul ...
- LeetCode | Reverse Linked List II
这道链表反转题也是搞的我焦头烂额,好久没有写链表了,注意记忆这些 Reverse Linked List II QuestionEditorial Solution My Submissions To ...
- Leetcode 206. Reverse Linked List
Similar Questions Reverse Linked List II Binary Tree Upside Down Palindrome Linked List 思路:链表反转. 解法一 ...
- LeetCode 206 Reverse Linked List--反转链表--迭代与递归解法--递归使用一个临时变量,迭代使用3个
此题链接:Reverse Linked List - LeetCode Reverse a singly linked list. Example: Input: 1->2->3-> ...
最新文章
- Powershell管理系列(十)邮件联系人及邮件用户的管理
- 【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
- 数据中台(一)数据资源规划与获取
- python编程前面需要一个空格怎么做_初学python,不明白代码之间时空格的用处
- android udp和tcp区别,UDP模式与TCP模式的区别
- android studio cmake opencv_Mac下安装及配置OpenCV环境(Xcode)
- javascript实现自动添加文本框功能
- (教程)2020最新windows10/anaconda/pytorch-gpu环境配置(附CUDA/cuDNN配置)
- VMware Workstation 网络设置解释三种
- java http响应头,java – HTTP响应标头内容处理附件
- 移动通信matlab实现,现代移动通信中的调制技术研究及Matlab实现
- 【优化算法】金鹰优化算法(GEO)【含Matlab源码 187期】
- DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路
- 正则表达式中的?表示匹配前面的正则表达式0次或者1次
- 华为存储发展史:从筚路蓝缕到星辰大海
- java中设置环境变量时,bin和lib的作用是什么?
- 令克软件再推OpenAPI与MAS系统服务,强大引擎赋能券商多元化发展
- poi给Word添加“下一页”
- CSS之text-overflow--怎么让多余的文字不显示或者以省略号表示
- 2021-04-23
热门文章
- 反卷积可视化工具--deconv-deep-vis-toolbox
- Failed to meta-introspect annotation interface org.springframework.web.bind.annotation.RequestBody:
- Couldn't find executable named map_saver below /opt/ros/indigo/share/map_server
- 文件与目录的默认权限与隐藏权限
- python sendto(右键发送文件到执行的bat)功能的实现
- python编写脚本教程_python编写一个会算账的脚本的示例代码
- java动态字段排序_Java8对多个字段排序
- 华三防火墙配置端口地址转换_H3C防火墙配置命令
- 几何畸变的类型_第七讲 几何纠正(摄影测量与遥感).pdf
- java数组删除数组元素_如何在Java中删除数组元素