Como llegar de nuevo a la cabeza de una lista enlazada después de crearlo en Java?

Ajith Prasad:

Estoy escribiendo un programa para cortar un número en sus dígitos y almacenar los dígitos en una lista enlazada en orden inverso. Pero no soy capaz de entender cómo devolver la lista enlazada?

He intentado crear un NodoLista cabeza, pero no en el mismo.

public class ListNode {
   int val;
   ListNode next;
   ListNode(int x) { val = x; }
  }

class Solution{
  int sum=123;
  public ListNode sol(){
    answer = new ListNode(0);  
    while (sum > 0) {
     int digit = sum % 10;
     answer= new ListNode(digit);
     answer= answer.next;
     sum /= 10;
                    }
        return //////
  }
}
GhostCat saludos Monica C.:

Aquí:

answer = new ListNode(0);  

Esa ListNodeinstancia es el primer elemento, y por lo tanto la "raíz" de su lista. Pero la lista es solamente de enlace simple. No se puede volver a un elemento anterior! Hay que recordar donde comenzó!

En otras palabras, usted tiene dos opciones:

  • gire su lista en una lista de doble ligado (de modo: cada nodo recuerda su predecesor) o
  • recordar que el nodo raíz.

En otras palabras: cuando se utiliza answercomo el "puntero en movimiento" dentro de su lista, entonces usted debe hacer algo como:

root = new ListNode(0); // remember this, it is the start of the list!
answer = root;

Y entonces usted tiene que asegurarse de mantener rootsu alrededor y sin cambios! Debido a que la referencia representa el (único!) Entrada de los datos de la lista. Cuando se pierde eso, todo se pierde ;-)

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=234314&siteId=1
Recomendado
Clasificación