Leetcode una pregunta del día: pregunta de la entrevista 02.02.kth-node-from-end-of-list-lcci (devuelve el kth nodo de la parte inferior)

Inserte la descripción de la imagen aquí
Idea: El problema típico de los punteros rápidos y lentos. Hay k-2 nodos entre el puntero rápido y el puntero lento. Luego, ++ los punteros rápido y lento al mismo tiempo. Cuando el puntero rápido apunta al nodo final de la lista vinculada, el puntero lento apunta al nodo k desde la parte inferior;
Inserte la descripción de la imagen aquí

struct ListNode
{
    
    
	int val;
	ListNode *next;
	ListNode(int x) : val(x), next(NULL) {
    
    }
};

int kthToLast(ListNode *head, int k)
{
    
    
	ListNode *left = head, *right = head;
	int count = 1;
	while (count < k)
	{
    
    
		right = right->next;
		count++;
	}
	while (right->next)
	{
    
    
		left = left->next;
		right = right->next;
	}
	return left->val;
}

Supongo que te gusta

Origin blog.csdn.net/wyll19980812/article/details/108842200
Recomendado
Clasificación