算法作业HW10:Leetcode92 Reverse Linked List II
来源:互联网 发布:网络爬虫贴吧 编辑:程序博客网 时间:2024/06/01 22:53
Description:
Reverse a linked list from position m to n. Do it in-place and in one-pass.
Note:
For example:
Given 1->2->3->4->5->NULL
, m = 2 and n = 4,
return 1->4->3->2->5->NULL
.
Solution:
Analysis and Thinking:
题目不是将整个链表进行反转,而是把下标范围为[m,n]的节点进行反转,因此需要把整个链表分成三段,分别是待反转左段,待反转段,待反转右段。算法的重点在于处理带反转段的反转操作以及将三段进行反转后连接。
Steps:
1.从链表头结点开始,遍历直到待反转段的起始位置,并用变量记录待反转起始点的前一个节点位置
2.从m到n开始,不断重复进行如下步骤:当前节点的next指针指向前一节点(这里用a->next以及PrePoint记录),再把前一节点PrePoint更新为当前节点,当前节点更新为其next指针指向的节点(即a=a->next),遍历完成后,完成反转
3.将链表的3个子段进行连接,主义,需要判断初始点是否为head头结点的位置以及结束点是否为尾节点的位置。
Codes:
class Solution {public: ListNode *reverseBetween(ListNode *head, int m, int n) { if(head==NULL) return NULL; ListNode *a=head; ListNode *b=NULL; for(int i=0;i<m-1;i++) //对第一分段进行处理 { b=a; a=a->next; } ListNode *endPoint=a; ListNode *PrePoint=a; for(int i=m+1;i<=n;i++) { ListNode *NextPoint=a->next; a->next=PrePoint; PrePoint=a; a=NextPoint; } endPoint->next=a; if(b) b->next=PrePoint; else head=PrePoint; return head; } };
Results:
0 0
- 算法作业HW10:Leetcode92 Reverse Linked List II
- Reverse Linked List II Leetcode92
- LeetCode92 Reverse Linked List II
- LeetCode92. Reverse Linked List II
- LeetCode92 Reverse Linked List II
- leetcode92~Reverse Linked List II
- leetcode92. Reverse Linked List II
- leetcode92. Reverse Linked List II
- LeetCode92. Reverse Linked List ii
- leetcode92. Reverse Linked List II
- leetcode92. Reverse Linked List II
- LeetCode92 Reverse Linked List II
- LeetCode92——Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- 一分钟教你破解intelliJ idea 2017
- JAVA 中的匿名内部类总结
- 10小时之内,暴力破解SSH账号的IP
- bzoj 2251 [2010Beijing Wc]外星联络
- 信息安全工程师 学习笔记 (一)
- 算法作业HW10:Leetcode92 Reverse Linked List II
- centos7中发布项目并安装mysql数据库
- 【数据挖掘】通用论坛正文提取
- 【OpenGL】OpenGL加载24位真彩色bmp图片或者256色bmp图片制作作纹理
- maven 常用命令
- .net使用一般处理程序matermark.ashx代码
- 信息安全工程师 学习笔记(二)
- android-studio的gradle3.3无法编译问题解决
- spark streaming 自定义kafka读取topic的offset(python)