Reverse Linked List II
2014-06-17 08:31
141 查看
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given
4,
return
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
看到的另外一种解法是用arraylist(我觉得用stack 更好)来记录m到n的每一个节点的val, 然后把m到n 这些节点的值 reverse, 这也是可以的,但我觉得这道题的目的还是为了考察linked list 结点的 reverse 吧。
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 吧。
相关文章推荐
- Reverse Linked List II
- Reverse Linked List II
- 【LeetCode练习题】Reverse Linked List II
- LeetCode解题报告—— Reverse Linked List II & Restore IP Addresses & Unique Binary Search Trees II
- 92. Reverse Linked List II
- [LeetCode] Reverse Linked List II
- Reverse Linked List II
- Leetcode 之 Reverse Linked List II
- Reverse Linked List II | Java最短代码实现
- LeetCode题解-92-Reverse Linked List II
- Leetcode Reverse Linked List II 92
- Reverse Linked List II -- LeetCode
- Reverse Linked List II
- Reverse Linked List II
- Leetcode 92 Reverse Linked List II
- 2.2.2Reverse Linked ListII
- LeetCode 60 Reverse Linked List II
- 92. Reverse Linked List II
- Reverse Linked List I&&II——数据结构课上的一道题(经典必做题)
- Reverse Linked List II