Поменяйте местами узлы в односвязном списке
Я пытаюсь поменять местами два узла. Например, если узлыa
а такжеb
Я передаю указатели(a-1)->next
а также(b-1)->next
которые в основном узлыa
а также .b
void swap(struct stack **a,struct stack **b)
{
struct stack *temp1 = *a, *temp2 = *b, *temp3 = *b;
*a = *b;
(*b)->next = (temp1)->next;
temp2 = temp1;
(temp2)->next = temp3->next;
}
Что я делаю неправильно? Когда я пытаюсь распечатать узлы после вызова функции, это 'это бесконечный цикл. Пожалуйста помоги.