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;
}
}