Day89 | 灵神 | 前后指针 合并两个链表
1669.合并两个链表
1669. 合并两个链表 - 力扣(LeetCode)
思路:
思路较为简单,就是一个模拟题
找到下标a的前一个结点并用p记录下来,继续遍历b-a+1的长度找到下标为b的节点,记录b的下一个节点为q
把list2接到p后,遍历list2,把末尾节点next指向q即可
完整代码:
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 30
| class Solution { public: ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) { ListNode *t=new ListNode; t->next=list1; ListNode *p=t; int length=b-a+1; while(a--) p=p->next; ListNode *q=p->next; while(length--) q=q->next; p->next=list2; while(list2) { if(list2->next==nullptr) { list2->next=q; break; } else list2=list2->next; } return t->next; } };
|