Preguntas de cepillado de registros (leetcode-24 pares de nodos de listas vinculadas de intercambio)

** Pregunta: Dada una lista enlazada, intercambie los nodos adyacentes de dos en uno y devuelva la lista enlazada intercambiada.
No puede simplemente cambiar el valor interno del nodo, sino que debe cambiar el nodo.

Ejemplo:
Dado 1-> 2-> 3-> 4, debe devolver 2-> 1-> 4-> 3.
Fuente:
Enlace de LeetCode : https://leetcode-cn.com/problems/ Los
derechos de autor de swap- Los nodos en pares pertenecen a Lingkou Network. Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente. **
Idea: cree un nuevo puntero de cabeza para la lista vinculada.

/**
 * 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;
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/lthahaha/article/details/106441066
Recomendado
Clasificación