La siguiente función de C toma una lista de enteros con un solo enlace como parámetro y reorganiza los elementos de la lista. La función se llama con la lista que contiene los números enteros 1, 2, 3, 4, 5, 6, 7 en el orden dado. ¿Cuál será el contenido de la lista después de que la función complete su ejecución?
struct node { int value; struct node *next; }; void rearrange(struct node *list) { struct node *p, * q; int temp; if ((!list) || !list->next) return; p = list; q = list->next; while(q) { temp = p->value; p->value = q->value; q->value = temp; p = q->next; q = p?p->next:0; } }
(A) 1,2,3,4,5,6,7
(B) 2,1,4,3,6,5,7
(C) 1,3,2,5,4,7,6
(D ) 2,3,4,5,6,7,1
Respuesta: (B)
Explicación: La función reorganizar() intercambia datos de cada Node con su siguiente Node. Comienza a intercambiar datos desde el primer Node.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA