import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param list1 ListNode类 * @param list2 ListNode类 * @param a int整型 * @param b int整型 * @return ListNode类 */ public ListNode mergeInBetween (ListNode list1, ListNode list2, int a, int b) { int index = 0; ListNode temp; if(a == 0){ temp = list2; }else{ temp = list1; } while(index < a-1){ list1 = list1.next; index++; } ListNode temp2 = list1; while(index<=b){ temp2 = temp2.next; index++; } list1.next = list2; while(list2.next!=null){ list2 = list2.next; } list2.next = temp2; return temp; } }
本题知识点分析:
1.链表遍历
2.虚拟头结点
3.数学模拟
本题解题思路分析:
1.保存关键点链表1的a部分,b节点后面一个结点
2.让链表1先衔接链表2
3.链表2的尾巴接上b节点后面的保存的一个结点