Reverse Linked List II
来源:互联网 发布:如何摆脱抑郁症知乎 编辑:程序博客网 时间:2024/06/18 13:26
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->2->3->4->5->NULL
, m = 2 and n = 4,
return 1->4->3->2->5->NULL
.
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
找到前面两个节点,每次新的节点插入到头结点后面
代码:
/**
* 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) {
if (head==NULL) return NULL;
if (m==n) return head;
ListNode* nextp;
ListNode* prehead=new ListNode(0);
prehead->next=head;
ListNode* cur=new ListNode(0);
ListNode* newhead=new ListNode(0);
newhead->next=cur;
nextp=prehead;
ListNode* preh=prehead;
for (int i=0; i<m; i++)
{
preh=nextp;
nextp=nextp->next;
}
for (int i=m-1; i<n; i++)
{
ListNode* temp=nextp;
nextp=nextp->next;
temp->next=newhead->next;
newhead->next=temp;
if (i==(m-1))
{
cur=temp;
}
}
preh->next=newhead->next;
cur->next=nextp;
return prehead->next;
}
};
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- MFC DirectUI界面库使用方法
- MySql学习笔记
- 磁盘管理
- 读《DOOM启示录》后之摘录
- poj 3281 Dining
- Reverse Linked List II
- 分布式服务框架 Zookeeper — 管理分布式环境中的数据
- 使用Harbor搭建Docker私有镜像仓库服务
- On-policy Sarsa算法与Off-policy Q learning对比
- spring-framework 下载
- 退出应用的方法
- 0012、node 之简单筛选后台数据以及需要分页时的一种处理方式
- HZAU_1209_Deadline(贪心)
- H5游戏的最大特点是什么?