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的链接列表反转到n。 一次通过。
Note: 1 ≤ m ≤ n ≤ length of list.
Example:
Input: 1->2->3->4->5->NULL, m = 2, n = 4
Output: 1->4->3->2->5->NULL
代码
/*** 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) {int change_len=n-m+1; //计算需要逆置的节点个数ListNode *pre_head=NULL; //初始化开始逆置的节点的前驱ListNode *result=head; //最终转换后的链表头节点,非特殊情况即为headwhile(head && --m){pre_head=head; //记录head的前驱head=head->next;}ListNode *modify_list_tail = head; //将modify_list_tail指向当前的head,即逆置后的链表尾ListNode *new_head = NULL;while(head&&change_len){//逆置change_len个节点ListNode *next=head->next;head->next=new_head;new_head=head;head=next;change_len--; //每完成一个节点逆置,change_len--;}modify_list_tail->next=head; //连接逆置后的链表尾与逆置段的后一个节点if(pre_head){//如果pre_head不空,说明不是从第一个节点开始逆置的,m>1pre_head->next=new_head; //将逆置链表开始的节点前驱与逆置后的头节点连接}else{//如果pre_head为空,说明m==1,从第一个节点开始逆置,结果即为逆置后的头节点result=new_head;}return result;}
};
分析
首先找到四个关键的节点:逆置段头节点的前驱、逆置前头节点即逆置后尾节点、逆置前尾节点即逆置后头节点、逆置段尾节点的后继;
LeetCode 92. Reverse Linked List II相关推荐
- 【??链表】LeetCode 92. Reverse Linked List II
LeetCode 92. Reverse Linked List II Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4306611.html ...
- (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
题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 解题思路: 1 /** 2 * Definition for singly-lin ...
- 92. Reverse Linked List II(反转链表II)
题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 思路: 先找到需要反转部分的首部,然后依次压栈, 最后出栈,连接即可. AC 2m ...
- 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-> ...
最新文章
- 宇通客车java_6米采血车
- 利用partial快乐驱动开发
- Kubernetes——基本概念与理论
- 时代聚焦AI安全——可解释性
- jvm(4)-虚拟机性能监控与故障处理工具
- 英特尔回应安全漏洞问题:已在硬件层面解决
- pythonexcel计算横列总和-在python中,如何在字典中找到值的总和?每个键都有多个值...
- 自尊就是吃饱了撑的-莫言
- JS双引号替换单引号
- 关于拿到一个别人给你已经上架的App源代码时,首先需要干的几个事情
- python制作gif动图_PIL生成透明GIF动图
- ddos应急处理_DDoS攻击应急体系知多少?
- PLC控制系统接地要求
- latex 表格及标题居中
- C语言中task的用法,C++11中std::packaged_task的使用详解
- 教你DIY中文增强版Geexbox,且安装为硬盘版
- 苹果系统下载了python软件怎么卸载_mac怎么卸载pycharm
- 微信开发者工具黑屏/打不开解决办法
- uni-app前端解决跨域的问题
- Android Studio挂载第三方模拟器
热门文章
- JDK与JRE及其在Eclipse中的使用
- 如何从完整的文件路径中分离文件名和路径名?
- java改写weka中的算法_用Eclipse在Weka中嵌入新算法
- mysql配置管理器在哪_SQL Server 2008配置管理器在哪下载
- 国外学python的软件_全球开发者调查报告:IT人最想学习 Go 和 Python、美国开发者收入最高...
- 7-9 职工排序题 (20 分)
- java旺季机票_java-第四章-机票价格受到淡季旺季的影响,编写的小程序
- C语言入门题-是不是太胖了 (10分)
- php输出tab,设置Tab按钮列表 · DolphinPHP1.5.0完全开发手册-基于ThinkPHP5.1.41LTS的快速开发框架 · 看云...
- python用户界面导入图片_python学习笔记之11:图像用户界面