算法day3-中等篇-反转链表2

算法day3-中等篇-反转链表2_第1张图片

尝试硬解,就是用两个指针指向要逆置的节点位置,但是边界情况始终无法解决,看题解

算法day3-中等篇-反转链表2_第2张图片

思路如图解,代码如下

    public ListNode reverseBetween(ListNode head, int left, int right) {
        if(left==right)
            return head;
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode p1 = dummy;
        for (int i = 0; i < left - 1; i++) {
            p1 = p1.next;
        }
        head = p1.next;
        for (int y = left; y < right; y++) {
            ListNode p2 = head.next;
            head.next = p2.next;
            p2.next = p1.next;
            p1.next = p2;
        }
        return dummy.next;
    }

你可能感兴趣的:(算法,链表,算法,数据结构)