Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41157
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-12 23:27
文章分类

全部博文(37)

文章存档

2014年(5)

2013年(32)

我的朋友

分类: C/C++

2013-12-25 23:33:34

简单。就不解释了...(貌似内容无中文容易被CU判定为advertise给删掉...所以说这么句废话...)


点击(此处)折叠或打开

  1. /**
  2.  * Definition for singly-linked list.
  3.  * struct ListNode {
  4.  * int val;
  5.  * ListNode *next;
  6.  * ListNode(int x) : val(x), next(NULL) {}
  7.  * };
  8.  */
  9. class Solution {
  10. public:
  11.     ListNode *reverseBetween(ListNode *head, int m, int n) {
  12.         if(m==n) return head;
  13.         int cnt=m;
  14.         ListNode *pre=NULL;
  15.         ListNode *h=head;
  16.         while(h&&--cnt) {pre=h;h=h->next;}
  17.         ListNode *n1=h;
  18.         ListNode *n2=h->next;
  19.         ListNode *n3=NULL;
  20.         n=n-m;
  21.         while(n1&&n2&&n--)
  22.         {
  23.             n3=n2->next;
  24.             n2->next=n1;
  25.             n1=n2;
  26.             n2=n3;
  27.         }
  28.         h->next=n3;
  29.         if(pre) pre->next=n1;
  30.         else head=n1;
  31.         return head;
  32.     }
  33. };


阅读(174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~