内容简介:Reverse a linked list from position m to n. Do it in one-pass.Note: 1 ≤ m ≤ n ≤ length of list.Example:
Reverse a linked list from position m to n. Do it in one-pass.
Note: 1 ≤ m ≤ n ≤ length of list.
Example:
Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->4->3->2->5->NULL
难度:medium
题目:反转从m到n的链表元素。一次遍历。
思路:记录m及m之前的位置,然后使用头插法。
Runtime: 2 ms, faster than 97.09% of Java online submissions for Reverse Linked List II.
Memory Usage: 36.9 MB, less than 0.95% of Java online submissions for Reverse Linked List II.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseBetween(ListNode head, int m, int n) {
if (m == n) {
return head;
}
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode ptr = head, prevMPtr = dummyHead, tailPtr = head;
for (int i = 1; i <= n; i++) {
ListNode node = ptr;
ptr = ptr.next;
if (i == m - 1) {
prevMPtr = node;
} else if (i == m) {
tailPtr = node;
node.next = null;
} else if (i > m) {
node.next = prevMPtr.next;
prevMPtr.next = node;
}
}
tailPtr.next = ptr;
return dummyHead.next;
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Windows高级调试
Mario Hewardt、Daniel Pravat / 聂雪军 / 机械工业出版社 / 2009-5 / 79.00元
本书主要讲解Windows高级调试思想和工具,并涉及一些高级调试主题。本书内容主要包括:工具简介、调试器简介、调试器揭密、符号文件与源文件的管理、栈内存破坏、堆内存破坏、安全、进程间通信、资源泄漏、同步、编写定制的调试扩展、64位调试、事后调试、Windows Vista基础以及应用程序验证器的测试设置等。本书内容详实、条理清楚。 本书适合Windows开发人员、Windows测试人员和Windo......一起来看看 《Windows高级调试》 这本书的介绍吧!