Sugerencia:
Para el problema de la lista vinculada, el valor de nodo apropiado no se conoce cuando se crea el nodo principal, por lo que generalmente es necesario inicializar un pre-puntero (pseudo-nodo principal) primero, y el siguiente nodo del puntero apunta a la cabeza del nodo principal real.El propósito de usar punteros previos es que no hay ningún valor de nodo disponible cuando se inicializa la lista vinculada.
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {
}
};
ListNode* pre = new ListNode(0); //0为预先指针的值,pre->next指向head
ListNode* current = pre; //移动current
return pre->next; //返回真实头节点
Ejemplos:
1. Pregunta de algoritmo: 2. Sumar dos números
2. Pregunta de entrevista 25. Combinar dos listas enlazadas ordenadas
para resumir:
1. El uso del nodo pseudo-cabecera (pre-puntero) se puede inicializar cuando el valor del nodo principal de la lista enlazada es incierto, de modo que el proceso posterior de establecimiento de la lista enlazada puede llevarse a cabo, pero necesita ser devuelto pre->next
.