Someone
public text v1 · immutableswap(a,b)
{
if(b == null)
return a
if(b->next == null)
{
a->next = null;
b->next = a;
return b;
}
r = swap(b->next, b->next->next);
if(r == b->next)
{
t = r->next;
b->next = t
r->next = b;
a->next = r;
return a;
}
else
{
a->next = r;
b->next = a;
return b;
}
}