两个有序链表的重复
题目
想法
- 设两个链表分别为
a
,b
,新增链表为m
令m
链表初始data
值为9999
1,令a.data
和b.data
进行比较- 当
a.data==b.data
,令m.next=a;a=a.next;b=b.next;c=c.next
. - 当
a.data>b.data
,令b=b.next
. - 当
a.data<b.data
,令a=a.next
.
- 当
代码
LNode *findSameNodeAndReturn(LinkedList l1, LinkedList l2) {
LinkedList merged = (LinkedList) malloc(sizeof(LNode));
merged->data = -999;
LNode *a = l1;
LNode *b = l2;
LNode *c = merged;
while (a && b) {
while (a->data == b->data) {
a = a->next;
b = b->next;
//拼接
if (c->data != a->data) {
LNode *temp = (LinkedList) malloc(sizeof(LNode));
temp->data = a->data;
c->next = temp;
}
}
while (a->data < b->data) {
a = a->next;
}
while (a->data > b->data) {
b = b->next;
}
}
return merged;
}
即一个特别的数字 ↩︎