交换链表中的相邻元素

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */

struct ListNode* swapPairs(struct ListNode* head){
    
    
       struct ListNode* frist = (struct ListNode*)malloc(sizeof(struct ListNode));//空节点
       frist->next = head;
       struct ListNode* before = frist;
       struct ListNode* after;
       while(pre->next&&pre->next->next){
    
     
           after = before->next;// after为两个交换节点的前一个节点
           before->next = after->next;//交换
           after->next = before->next->next;//交换
           before->next->next = after;//交换
           before = after;//移动
       }
       
       return frist->next;
}

猜你喜欢

转载自blog.csdn.net/qq_52001969/article/details/113038585