Étant donné une liste de nombres. Swap tous les 2 liens adjacents

Donné une liste de nombres. Swap tous les 2 liens adjacents. Par exemple, si une liste liée donné est:

a->b->c->d->e->f 

De sortie prévue:

b->a->d->c->f->e

Tous les 2 autres liens doivent être inversés.

J'ai écrit une solution ici. Pouvez-vous me suggérer une autre solution. Pouvez-vous commenter ma solution et m'aider à mieux écrire?

void SwapAdjacentNodes (Node head)
{
    if (head == null) return; 

    if (head.next == null) return; 
    Node curr = head;
    Node next = curr.Next;
    Node temp = next.Next;

    while (true)
    {
        temp = next.Next;
        next.Next = curr;
        curr.Next = temp;

        if  (curr.Next != null)
            curr = curr.Next;
        else
            break;
        if (curr.Next.Next!=null)
            next = curr.Next.Next;
        else
            break;
    }   
}
careercup.com/question?id=2177669
Ouais je l'ai ramassé question à partir de là, mais ont mis en œuvre, à ma façon...je me demandais si je peux obtenir une meilleure solution ici
personne n'a rien dit à propos de pas à l'aide de stockage supplémentaire

OriginalL'auteur Learner | 2010-05-15