El k-ésimo nodo desde la parte inferior en la lista vinculada de "Oferta de dedo de espada"
No sé a dónde voy, ¡pero ya estoy en camino!
El tiempo se apresura, aunque nunca me he conocido, pero conocí a Yusi, realmente es un gran destino, ¡gracias por tu visita!
Pregunta : Ingrese una lista vinculada y genere el k-ésimo nodo de la parte inferior de la lista vinculada. Si la longitud de la lista vinculada es menor que k, devuélvala vacía.
Ejemplo :
示例 1 :
输入:{1,2,3,4,5},1
返回值:{5}
Codigo 1:
# class ListNode:# def __init__(self, x):# self.val = x# self.next = NoneclassSolution:defFindKthToTail(self , pHead , k ):ifnot pHead:returnNone
left, right = pHead, pHead
while right and k >0:
right = right.next
k -=1if k >0:returnNonewhile right:
left = left.next
right = right.nextreturn left
Descripción del algoritmo: establezca la leftsuma de los punteros rápido y lento right; deje que el puntero rápido vaya k pasos primero, si la lista enlazada termina, pero no completa k pasos, es decir, k>0vuelva al vacío; deje que los punteros rápido y lento vayan al mismo tiempo hasta que finalice el puntero rápido y vuelva a la posición del puntero lento.