El k-ésimo nodo desde la parte inferior en la lista vinculada de "Oferta de dedo de espada"

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 = None
class Solution:
    def FindKthToTail(self , pHead , k ):
        if not pHead:
            return None
        left, right = pHead, pHead
        while right and k > 0:
            right = right.next
            k -= 1
        if k > 0:
            return None
        while right:
            left = left.next
            right = right.next
        return 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.

Supongo que te gusta

Origin blog.csdn.net/qq_34331113/article/details/115302576
Recomendado
Clasificación