Проблема с пересечением множества на С++
Хочу написать функцию пересечения односвязанного списка. Не могу понять, в чем ошибка:
static void tlist_diff(tlist* res, const tlist* l1, const tlist* l2) {
const node* la = l1->head;
const node* lb = l2->head;
while ((la != NULL) && (lb != NULL)) {
if (la->val < lb->val) ++la;
else if (lb->val < la->val)
++lb;
else {
res = &l1;
++res, ++la, ++lb;
}
}
for (; la != NULL; la = la->next)
tlist_add(res, la->val);
}