/** * 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 last = list1; ListNode next = list1; while(last != null && a > 1){ a--; last = last.next; } while(next != null && a <= b){ a++; next = next.next; } last.next = list2; while(list2.next != null){ list2 = list2.next; } list2.next = next.next; return list1; } }