- 题目链接:1669. 合并两个链表
- 考查知识:单链表(查找+插入)
- 题意描述:
- 给定两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
- 将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。
- 思路简析:按照题意查找链表1第a-1个,第b+1个结点,然后将链表2拼接仅在链表1内即可;
- 具体代码
class Solution { public: ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) { ListNode *p=list1,*q=list1,*r=list2; for(int i=0;i<b+1;i++){ if(i<a-1)p=p->next;//找链1第a-1个结点 q=q->next;//找链1第b+1个结点 } while(r->next!=NULL){ r=r->next;//找链2尾结点 } p->next=list2;//拼接两个链表 r->next=q; return list1; } };