Reverse Linked List II
来源:互联网 发布:阶乘算法 编辑:程序博客网 时间:2024/04/29 22:26
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.
</pre><pre name="code" class="java">/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { if(m==n){ return head; } ListNode dummy = new ListNode(0); dummy.next=head; ListNode preM= dummy; ListNode nodeM=dummy; //find preM, M for(int i=0;i<m;i++){ preM=nodeM; nodeM=nodeM.next; } ListNode bfcur=nodeM; ListNode cur=nodeM.next; ListNode aftcur; for(int i=m+1;i<=n;i++){ aftcur=cur.next; cur.next=bfcur; bfcur=cur; cur=aftcur; } preM.next=bfcur; nodeM.next=cur; return dummy.next; } }
看到的另外一种解法是用arraylist(我觉得用stack 更好)来记录m到n的每一个节点的val, 然后把m到n 这些节点的值 reverse, 这也是可以的,但我觉得这道题的目的还是为了考察linked list 结点的 reverse 吧。
0 0
- 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中的CBitmap类型
- springMVC
- android 提升性能总结
- Java异常
- Linq 中部分语法(直接执行,)
- Reverse Linked List II
- mac苹果屏幕截图快捷键
- C++ - 复制容器(container)的元素至另一个容器
- 二次开发基础知识
- 设置dll的共享数据段
- mysql在unbuntu的三种安装方法 (自动,二进制包,源码)
- Android 4.0 源代码结构分析
- js实现点击更换图片
- 百度地图切片源码