Merge In Between Linked Lists
给两个list和[a,b], 把第一个list的ath到bth的node断开, 把list2接进去.
因为要断开, 所以分成left和right, 然后因为要接进去, 所以还要找到list2的最后一个node, end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/** * 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; } } |