J'ai des problèmes d'échange de nœuds adjacents dans une liste liée.Échange de nœuds adjacents dans une liste liée
par ex: entrée: 1-> 2-> 3-> 4-> 5-> null sortie : 2-> 1-> 4-> 3-> 5-> null
bool swapAdjacent(node** head)
{
//1->2->3->4->null
//2->1->4->3->null
if(head==NULL)
return 0;
node* current = *head;
*head = (*head)->next ;
node* prev = NULL;
cout<<"head val "<<(*head)->data <<endl;
node* temp;
while(current!=NULL&¤t->next!=NULL)
{
temp = current->next ; //1s pointer points to 2
current->next = temp->next ; // 1s pointer point to 3
temp ->next = current; //2s pointer shud point to 1
prev = current;
current = current->next ;
//cout<<"data " <<current->data <<endl;
if(current!=NULL)
prev->next = current->next ;
}
return 1;
}
Mon code ne fonctionne pas lorsqu'il y a un nombre impair de noeuds. Comment régler ceci ?
Trebiien sa non @ Daniel travail à domicile – brett
http://www.careercup.com/question?id=3537658 – brett
@Jonathan: la fonction ne retourne pas 1 inconditionnellement. Renvoie 1 si cela a fonctionné et 0 s'il n'y avait pas de travail à faire. (voir le début de la sortie si la tête == NULL en haut). – abelenky