leetcode oj java Reverse Linked List II
来源:互联网 发布:淘宝哪家手机壳质量好 编辑:程序博客网 时间:2024/06/03 06:57
一、问题描述:
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.
二、解决思路:
翻转链表的时候参照《剑指offer》中的题16, 此处翻转部分,因此需要tmp1 和tmp来记录第一个翻转的node, 和第一个翻转的node的前边的Node. 为了解决从第一个开始翻转的问题,我们给链表增加了一个头结点。同时注意考虑边界情况
package T12;/** * @author 作者 : xcy * @version 创建时间:2016年12月26日 下午9:47:51 * 类说明 */public class t92 { public static void main(String[] args) { // TODO Auto-generated method stub ListNode root = new ListNode(0); ListNode r1 = new ListNode(1); ListNode r2 = new ListNode(2); // ListNode r3 = new ListNode(3); // ListNode r4 = new ListNode(4); // ListNode r5 = new ListNode(5); // ListNode r6 = new ListNode(6); root.next = r1; r1.next = r2; // r2.next = r3; // r3.next = r4; // r4.next = r5; // r5.next = r6; // r6.next = null; root = reverseBetween(root, 2, 3); while (root != null) { System.out.println(root.val); root = root.next; } } public static ListNode reverseBetween(ListNode head, int m, int n) { // head 为空 ListNode phead = new ListNode(0); phead.next = head; int len = n - m; if (head == null || len < 1) { return head; } ListNode p = phead; for (int i = 0; i < m - 1; i++) { p = p.next; } ListNode tmp = p; ListNode tmp1 = p.next; p = p.next; ListNode q = p.next; ListNode r = q.next; if (r == null) { tmp.next = q; q.next = p; p.next = r; return phead.next; } while (len > 0 && r != null) { len--; q.next = p; p = q; q = r; if (r.next != null) { r = r.next; } } tmp.next = p; if (q == p) { tmp1.next = null; } else { tmp1.next = q; } return phead.next; }}
三、代码:
0 0
- leetcode oj java Reverse Linked List II
- LeetCode OJ:Reverse Linked List II
- LeetCode OJ - Reverse Linked List II
- LeetCode OJ Reverse Linked List II
- [Leetcode] Reverse Linked List II (Java)
- leetcode JAVA Reverse Linked List II 3.32
- 【Leetcode】Reverse Linked List II in JAVA
- [LeetCode][Java] Reverse Linked List II
- [LeetCode] 92. Reverse Linked List II java
- Reverse Linked List II leetcode java
- LeetCode OJ Reverse Linked List
- LeetCode[Linked List]: Reverse Linked List II
- LeetCode: Reverse Linked List II
- LeetCode: Reverse Linked List II
- [LeetCode] Reverse Linked List II
- [Leetcode] Reverse Linked List II
- [LeetCode]Reverse Linked List II
- Leetcode: Reverse Linked List II
- PHP7扩展开发之常量定义
- java 实现csv文件导入导出
- java swing canvas小结
- 简单记录下生活
- 分库分表的几种常见形式以及可能遇到的难题
- leetcode oj java Reverse Linked List II
- openwrt下iw命令应用
- python生成二维码包qrcode
- django ORM中大于等于,小于等于,contains
- Qt插件类
- 9.序列化反序列化链表
- 垃圾收集器(二)
- redis dict字典的源码分析
- log4j2 使用详解