大三总结

这是力扣上的一道题
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
struct ListNode* swapPairs(struct ListNode* head)
{
struct ListNode* p=(struct ListNode)malloc(sizeof(struct ListNode));
p->next=head;
struct ListNode q = p;
while (p->next != NULL&&p->next->next!=NULL)
{
struct ListNode* node1 = p->next;
struct ListNode* node2 = p->next->next;
p->next=node2;
node1->next = node2->next;
node2->next = node1;
p = node1;
}
return q->next;
}

浙公网安备 33010602011771号