Lista vinculada inversa
Factor de dificultad completo
* * * * *
, el factor de dificultad de esta pregunta* *
.
Entusiasmo frecuente por los exámenes completos, entusiasmo* * * * *
por esta pregunta* * * * *
.
1. Descripción del título
2. Enlace de tema
3. Análisis de problemas
- Invierta la lista vinculada dada y muestre el encabezado de la nueva lista vinculada.
- La complejidad del tiempo es O (n). Recorra un lado de la lista vinculada desde el principio sin repetir el recorrido del bucle.
- La complejidad del espacio es O (1). No abra nuevos nodos de listas vinculadas. Realice in situ.
3.1 Icono de análisis
3.2 Explicación detallada de los iconos
- El nodo está inicialmente vacío, por lo que el siguiente después de que head (cur) se invierte apunta a vacío.
- cur es inicialmente la cabeza.
- El siguiente es el siguiente de cur, y el siguiente nodo aparece primero cada vez para
记录cur的next
garantizar la continuación de la iteración.
Código de núcleo iterativo: (proceso como se muestra arriba)
Node = Cur;
Cur = Next;
Next = Cur->next;
Cur -> next = Node;
4. Código de resolución de problemas
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
1.
2. @param pHead ListNode类
3. @return ListNode类
*/
typedef struct ListNode ListNode;
struct ListNode* ReverseList(struct ListNode* pHead ) {
if(pHead == NULL) //注释1
{
return NULL;
}
//注释二
ListNode* Node = NULL;
ListNode* Cur = pHead;
ListNode* Next = Cur->next;
Cur->next = Node;
//注释3
while(Next)
{
Node = Cur;
Cur = Next;
Next = Cur->next;
Cur -> next = Node;
}
return Cur;
}
5. Explicación detallada de los comentarios del código
- Nota 1: El puntero de la cabeza se anula primero. Para no
Next = Cur->next
provocar un acceso de puntero nulo de vez en cuando. - Nota 2: Primero procese el encabezado de la iteración. De cada nodo
初始相对位置进行归位
. - Nota 3: Para lograr la iteración, el proceso es como se muestra en la figura anterior. Cuando
Next为空时,链表访问完毕
. El nuevo nodo principal es cur y se devuelve el nuevo nodo principal después de la inversión.
1.如有错误或者没能理解的地方,请及时评论或者私信,及时修改更新
.
2.会持续更新相关链表高频题目,分类专栏—数据结构
.