Ejercicios recomendados de Lista Enlazada

Sumar dos números

Se dan dos listas enlazadas no vacías que representan dos enteros no negativos. Los dígitos están almacenados en orden inverso, y cada uno de sus nodos contiene un solo dígito. Suma los dos números y devuelve la suma como una lista enlazada.

Puede suponer que los dos números no contienen ningún cero inicial, excepto el propio número 0.

Ejemplo 1:

Entrada: l1 = [2,4,3], l2 = [5,6,4] Salida: [7,0,8] Explicación: 342 + 465 = 807.

Intercambio de nodos por parejas

Dada una lista enlazada, intercambia cada dos nodos adyacentes y devuelve su cabeza. Debe resolver el problema sin modificar los valores de los nodos de la lista (es decir, sólo se pueden cambiar los propios nodos).

Ejemplo 1: Entrada: cabeza = [1,2,3,4] Salida: [2,1,4,3]

Historial de un Navegador

Tienes un navegador de una pestaña donde empiezas en la página de inicio y puedes visitar otra url, retroceder en el historial número de pasos o avanzar en el historial número de pasos.

Implementa la clase BrowserHistory:

BrowserHistory(string homepage): inicializa el objeto con la página de inicio del navegador. void visit(string url): visita la url de la página actual. Borra todo el historial de avance. string back(int steps): mueve los pasos hacia atrás en el historial. Si sólo puede devolver x pasos en el historial y pasos > x, devolverá sólo x pasos. Devuelve la url actual después de retroceder como máximo pasos en el historial. string forward(int steps): mover pasos hacia adelante en el historial. Si sólo puede avanzar x pasos en el historial y pasos > x, avanzará sólo x pasos. Devuelve la url actual después de avanzar en el historial como máximo pasos.

Ejemplo:

Entrada: ["BrowserHistory", "visita", "visita", "visita", "atrás", "atrás", "adelante", "visita", "adelante", "atrás", "atrás"] [["leetcode.com"],["google.com"],["facebook.com"],["youtube.com"],[1],[1],[1],["linkedin.com"],[2],[2],[7]] Salida: [null,null,null, "facebook.com", "google.com", "facebook.com",null, "linkedin.com", "google.com", "leetcode.com"]```

Explicación:

BrowserHistory browserHistory = new BrowserHistory("leetcode.com"); browserHistory.visit("google.com"); // Estás en "leetcode.com". Visita "google.com" browserHistory.visit("facebook.com"); // Estás en "google.com". Visita "facebook.com" browserHistory.visit("youtube.com"); // Estás en "facebook.com". Visita "youtube.com" browserHistory.back(1); // Estás en "youtube.com", vuelve a "facebook.com" retornas "facebook.com" browserHistory.back(1); // Estás en "facebook.com", vuelve a "google.com" retornas "google.com" browserHistory.forward(1); // Estás en "google.com", avanza hasta "facebook.com" return "facebook.com" browserHistory.visit("linkedin.com"); // Estás en "facebook.com". Visita "linkedin.com" browserHistory.forward(2); // Estás en "linkedin.com", no puedes avanzar ningún paso. browserHistory.back(2); // Estás en "linkedin.com", retrocede dos pasos a "facebook.com" y luego a "google.com". devuelve "google.com" browserHistory.back(7); // Estás en "google.com", puedes retroceder sólo un paso hasta "leetcode.com". Retornas "leetcode.com"