题目:现有两个递增的单链表L1和L2,设计一个算法将L1与L2的所有结点归并到递增的单链表L3中。要求:空间复杂度为O(1)。
思路:本题可采用二路归并思路,但题目要求空间复杂度为O(1),因此不能复制结点,只能破坏L1和L2将结点插入到L3中。
代码:
void Merge(LinkList &L1,LinkList &L2,LinkList &L3)
{
LinkList *p=L1.head->next, *q=L2.head->next;
LinkList *p1, *q1, *r;
L1.head->next