Reverse Linked List II --一道很锻炼链表和指针的题
来源:互联网 发布:阿里云服务器中文乱码 编辑:程序博客网 时间:2024/05/16 11:54
题目链接:https://oj.leetcode.com/problems/reverse-linked-list-ii/
#include <iostream>using namespace std;struct ListNode {int val;ListNode *next;ListNode(): val(0), next(NULL) {}ListNode(int x) : val(x), next(NULL) {}};class Solution {public:ListNode *reverseBetween(ListNode *head, int m, int n) {if(head == NULL || m == n) return head;int i;ListNode *first = NULL;ListNode *temp = head;for(i = 0; i < m - 1; i++){first = temp;temp = temp -> next;}ListNode *end = temp;ListNode *temp_pre = temp;temp = temp -> next;for(i = m + 1; i <= n; i++) //<span style="font-family: Arial, Helvetica, sans-serif;">主要步骤:将该节点的next指针指向前一个节点,然后temp_pre和temp都往前移</span>{ListNode *temp_next = temp -> next;temp -> next = temp_pre;temp_pre = temp;temp = temp_next;}end -> next = temp; <span style="font-family: Arial, Helvetica, sans-serif;">//将原来的第m个节点与第n+1个节点连接</span>if(first) { <span style="font-family: Arial, Helvetica, sans-serif;">//判断是否从一开始就反向</span>first -> next = temp_pre;}else {head = temp_pre;}return head;}};int main() {int len,m,n,t,i,j;cin>>len;ListNode *node = new ListNode[len+1], *head;head = node;for(i = 0; i < len;i++) {cin>>t;j = i;node[i].val = t;node[i].next = &node[++j];}cin>>m>>n;Solution a;ListNode *res = a.reverseBetween(head,m,n);for(i = 0; i < len; i++) {if(i != len - 1) {cout<<res -> val<<"->";res = res -> next;}else {cout<<res -> val<<endl;}}delete [] node;system("PAUSE");}
0 0
- Reverse Linked List II --一道很锻炼链表和指针的题
- 又是一道快慢指针与链表的结合题 Linked List Cycle II
- 逆转链表的一部分 Reverse Linked List II
- Reverse Linked List II 翻转链表II
- [Lintcode]Reverse Linked List II 翻转链表 II
- 【一天一道LeetCode】#92. Reverse Linked List II
- leetCode 92.Reverse Linked List II (反转链表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
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
- "Current Open Cursors Count" 位于 1333警告
- make: *** [out/host/linux-x86/sdk/android-sdk_eng.smdt_linux-x86.zip] 错误 44
- Axure RP 7.0注册码
- vim
- Reverse Linked List II --一道很锻炼链表和指针的题
- Servlet3.0中Servlet的使用
- Linux下my.ini/my.cnf文件路径
- 20140926
- [LeetCode] Maximum Product Subarray的4种解法
- 研究表明:手机移动数据可用于预测犯罪行为
- alsa音频架构
- 查看Android.mk文件中的变量的值
- 编程世界的十大算法---值得一看