力扣 24. 两两交换链表中的节点

刚入半年计科  建议用虚拟头指针  大家可以去b站看代码随想录老师讲解的 相似题型  反转链表

代码:

/**

 * Definition for singly-linked list.

 * struct ListNode {

 *     int val;

 *     struct ListNode *next;

 * };

 */

struct ListNode* swapPairs(struct ListNode* head) {

    typedef struct ListNode lide;

    lide*dummy=(lide*)malloc(sizeof(lide));

    dummy->next=head;

    if(!head) return NULL;

    if(!head->next) return head;

    lide*cur=head;

    lide*temp1=dummy;

   

    while(cur&&cur->next)

    {lide*temp2=cur->next->next;

        temp1->next=cur->next;

   

    cur->next->next=cur;

    temp1=cur;

    cur->next=temp2;

    cur=cur->next;

       

    }

return dummy->next;

}

你可能感兴趣的:(leetcode,链表,算法)