翻转链表 II

来源:互联网 发布:网络投票哪家好 编辑:程序博客网 时间:2024/05/22 13:32

翻转链表中第m个节点到第n个节点的部分
样例
给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->2->5->null

挑战
在原地一次翻转完成

/** * Definition for ListNode * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    /**     * @param ListNode head is the head of the linked list      * @oaram m and n     * @return: The head of the reversed ListNode     */    public ListNode reverseBetween(ListNode head, int m , int n) {        ListNode dummy = new ListNode(0);        dummy.next = head;        ListNode pre = dummy;        for (int i = 0; i < m-1; i++) pre = pre.next;        ListNode start = pre.next;        ListNode next = start.next;        for (int i = 0; i < n-m; i++) {            start.next = next.next;            next.next = pre.next;            pre.next = next;            next = start.next;        }        return dummy.next;    }}
0 0
原创粉丝点击