解题思路:
1、定义一个链表的1左节点,通过遍历移动到a - 1处;
2、定义链表1的右节点,通过遍历移动到b处;
3、将leftnode指向链表2的头结点,然后遍历链表2,headnode指向rightnode的下一个结点;
4、返回链表1。
/**
* 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 leftnode = list1;
ListNode rightnode = list1;
ListNode headnode = list2;
for(int i = 0; i < a - 1; i++){
leftnode = leftnode.next;
}
for(int i = 0; i < b; i++){
rightnode = rightnode.next;
}
leftnode.next = headnode;
while(headnode.next != null){
headnode = headnode.next;
}
headnode.next = rightnode.next;
return list1;
}
}