ブラッシングの質問を記録する-(leetcode-24ペアの交換リンクリストノード)

**質問:リンクリストが与えられた場合、その中の隣接ノードを1つずつ交換し、交換されたリンクリストを返します。
ノードの内部値を単に変更するだけでなく、実際にノードを交換する必要があります。

例:
1-> 2-> 3-> 4の場合、2-> 1-> 4-> 3を返す必要があります。
ソース:LeetCode
リンク:https ://leetcode-cn.com/problems/swap-
著作権ペアのノードはLingkouネットワークに属しています。商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。**
アイデア:リンクリストの新しいヘッドポインターを作成します。

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


struct ListNode* swapPairs(struct ListNode* head){
    
    
    struct ListNode *p=NULL,*pnext=NULL;
    if(!head)
        return head;
    if(head!=NULL){
    
    
        struct ListNode *front_head = (struct ListNode*)malloc(sizeof(struct ListNode));
        front_head->next=head;
    p=front_head;
    while(p->next!=NULL&&p->next->next!=NULL){
    
    
        pnext=p->next;
        p->next=pnext->next;
        pnext->next=pnext->next->next;
        p->next->next=pnext;
        p=pnext;
    }
    return front_head->next;
    }
    return;
}

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/lthahaha/article/details/106441066