Directorio de artículos
Descripción del problema
Dado un nodo con una cabeza
La lista enlazada individualmente no vacía de devuelve el nodo intermedio de la lista enlazada.
Si hay dos nodos intermedios, se devuelve el segundo nodo intermedio.
Informe de resolución de problemas.
- Método de puntero
rápido y lento Establezca los punteros rápido y lento, el puntero rápido es el doble de la velocidad del puntero lento, cuando el puntero rápido llega al final, el puntero lento va al centro
Código de implementación
class Solution {
public:
ListNode* middleNode(ListNode* head) {
ListNode* slow = head;
ListNode* fast = head;
while (fast != NULL && fast->next != NULL) {
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
};