LeetCode 92 翻转链表II &vivo笔试第二题

92 翻转链表II

题目:
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。
说明:
1 ≤ m ≤ n ≤ 链表长度。

示例:
输入: 1->2->3->4->5->NULL, m = 2, n = 4
输出: 1->4->3->2->5->NULL

方法:逐步交换法
思路:创建一个虚拟节点,先遍历到m的位置,用三个指针分别指着m,m的前继节点,m的后继节点,然后交换m和m后继节点的位置,依次交换

代码:

public ListNode reverseBetween(ListNode head, int m, int n) {
        ListNode dummy = new ListNode(0);
        dummy.next=head;
        ListNode pre = dummy;
        for (int i = 1; i 

你可能感兴趣的:(校招笔试题,LeetCode)