Skip to content

Instantly share code, notes, and snippets.

@antonxo
Created May 12, 2019 20:45
Show Gist options
  • Save antonxo/27df98e1966d96913a547d9cd16ccbad to your computer and use it in GitHub Desktop.
Save antonxo/27df98e1966d96913a547d9cd16ccbad to your computer and use it in GitHub Desktop.
[C] A function to swap two adjacent nodes in a doubly-linked list.
void ls_swap(t_list **a)
{
t_list *tmp;
tmp = (*a);
(*a) = (*a)->next;
tmp->next = (*a)->next;
if (tmp->next)
tmp->next->prev = tmp;
(*a)->prev = tmp->prev;
tmp->prev = (*a);
(*a)->next = tmp;
if ((*a)->prev)
(*a)->prev->next = (*a);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment