一、学习要点:
0.流程简述:
1->2->3->4->5->null
1-> 3->2->4->5->null
1-> 4->3->2->5->null
由此我们可以看出来,总共需要n-m步即可,第一步是将节点3放到节点1的后面,第二步将节点四放到节点1的后面。很有规律的操作,刚开始,pre指向结点1,cur指向结点2,然后我们建立一个临时结点t,指向结点3,然后我们断开结点2和结点3,将节点2的next连接结点4上,也就是cur->next=t->next,在把结点3连接到节点1的后面即结点2的前面,t->next=pre->next,最后再将原来的结点1和结点2的连接断开,将节点1连接到结点3,即pre->next=t;
二、代码:

class Solution
{
public:ListNode *reverseBetween(ListNode *head,int m,int n){ListNode *dummy=new ListNode(-1),*pre=dummy;dummy->next=head;for(int i=0;i<m-1;i++){pre=pre->next;}ListNode* cur=pre->next;for(int i=m;i<n;i++){ListNode* t=cur->next;cur->next=t->next;t->next=pre->next;pre->next=t;}return dummy->next;}
};

链表反转2(Reverse Linked List II)相关推荐

  1. 【??链表】LeetCode 92. Reverse Linked List II

    LeetCode 92. Reverse Linked List II Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4306611.html ...

  2. 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的链接列表反 ...

  3. LeetCode | Reverse Linked List II

    这道链表反转题也是搞的我焦头烂额,好久没有写链表了,注意记忆这些 Reverse Linked List II QuestionEditorial Solution My Submissions To ...

  4. Reverse Linked List II -- LeetCode

    原标题链接: http://oj.leetcode.com/problems/reverse-linked-list-ii/  这道题是比較常见的链表反转操作,只是不是反转整个链表.而是从m到n的一部 ...

  5. 92. Reverse Linked List II(反转链表II)

    题目链接:https://leetcode.com/problems/reverse-linked-list-ii/ 思路: 先找到需要反转部分的首部,然后依次压栈, 最后出栈,连接即可. AC 2m ...

  6. LeetCode Reverse Linked List II 反置链表2

    题意:将指定的一段位置[m,n]的链表反置,返回链表头. 思路:主要麻烦在链表头,如果要从链表头就开始,比较特殊. 目前用DFS实现,先找到m-1的位置,再找到n+1的位置,中间这段就是否要反置的,交 ...

  7. [LeetCode] 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-> ...

  8. (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-> ...

  9. Leetcode: 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-> ...

最新文章

  1. Android Studio安卓开发中使用json来作为网络数据传输格式
  2. 利用Trigger完成WPF 的动画-渐显
  3. 精通 Oracle+Python 存储过程、Python 编程
  4. 调用接口登录禅道_第三方应用配置免密登录禅道
  5. 【渝粤教育】电大中专建筑材料 (3)作业 题库
  6. malloc 结构体_二进制安全之堆溢出(系列)——堆基础 amp; 结构(二)
  7. java标识符命名_Java标识符命名规则
  8. 去重查询表mysql 中数据
  9. 1157 全是1的最大子矩阵
  10. js 判断字符是否以汉字开头
  11. 【Spark】Spark是什么
  12. Mercurial:Hg缓存更改的文件和打patch
  13. MySQL Order By 使用方法
  14. 备受知名投资人青睐的Pocket Network,潜力几何?
  15. 第一次使用拉勾网求职经历
  16. 感冒发烧不宜吃的食物与可以吃的食物
  17. 中文分词后去除停用词
  18. 自适应网页(响应式布局)+弹性布局
  19. 用NDK交叉编译pixman-0.34
  20. 碎片化学习三款必备APP

热门文章

  1. boost::mp11::mp_push_front相关用法的测试程序
  2. boost::hana::at_c用法的测试程序
  3. boost::king_ordering用法的测试程序
  4. 基于Boost::beast模块的无栈协程http服务器
  5. Boost:post process后期处理的测试程序
  6. VTK:可视化之RotateActor
  7. VTK:PolyData之PointLocatorVisualization
  8. VTK:InfoVis之DelimitedTextWriter
  9. OpenCV添加图像轨迹轨迹条 Adding Images Trackbar的实例(附完整代码)
  10. OpenCV视差图后过滤