Merge In Between Linked Lists

给两个list和[a,b], 把第一个list的ath到bth的node断开, 把list2接进去.

因为要断开, 所以分成left和right, 然后因为要接进去, 所以还要找到list2的最后一个node, end.

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) {
        ListNode left = list1; // the left part
        for(int i = 0; i < a - 1; i++) {
            left = left.next;
        }
        ListNode end = list2; // the end of list2
        while(end.next != null){
            end = end.next;
        }
        ListNode right = left.next;// the right part 
        for(int i = a; i <= b; i++) {
            right = right.next;
        }
        left.next = list2;
        end.next = right;
        return list1;
    }
}