LintCode-----36.翻转链表 II
2017-09-01 01:54
369 查看
原题目
1.使用中间容器是绝对不会错的
相对来说使用了额外的空间 2928 ms/** * Definition for ListNode * 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 (head == null) { return head; } int len = getLen(head); int[] nums = new int[len]; int index = 0; ListNode p = head; while (p != null) { nums[index] = p.val; p = p.next; index++; } change(nums, m, n); for (int i = 0; i < nums.length; i++) { ListNode node = new ListNode(nums[i]); if (i == 0) { head = node; p = head; } else { p.next = node; p = p.next; } } return head; } public void change(int[] nums, int m, int n) { m = m - 1; n = n - 1; int mid = (m + n) / 2; for (int i = 0; i <= mid; i++) { if (m + i < n - i) { int temp = nums[m + i]; nums[m + i] = nums[n - i]; nums[n - i] = temp; } } } public int getLen(ListNode head) { ListNode p = head; int counter = 0; while (p != null) { counter++; p = p.next; } return counter; } }
相关文章推荐
- [lintcode]36. 翻转链表 II
- 36. 翻转链表 II
- lintcode 中等题: reverse linked list II 翻转链表II
- [Lintcode]Reverse Linked List II 翻转链表 II
- LintCode 36 翻转链表 II
- 【LintCode】翻转链表 II
- 36 - 翻转链表 II
- 翻转链表 II-LintCode
- lintcode-36-翻转链表 II
- lintcode,翻转链表 II
- 【LintCode】 Reverse Linked List 翻转链表
- LeetCode中 翻转链表II
- lintcode 翻转链表
- *[Lintcode]带环链表 II
- LintCode-35. 翻转链表
- [LintCode]35.翻转链表 ***
- 删除排序链表中的重复数字 II -LintCode
- lintcode-221-链表求和 II
- LintCode_035_翻转链表
- [LeetCode] Reverse Linked List I II - 链表翻转问题