2011-07-19 5 views
3

J'ai une question sur les listes liées circulairement. Mon objet de liste lié a deux références, first et last, et le nœud suivant de la référence last est first. Je veux écrire une méthode qui insère un noeud dans la fin de la liste.Structure de liste liée en Java

void insertLast(int k) { 
    Node a = new Node(k); 

    if (first == null) { 
     first = last = a; 
    } else { 
     last.after = a; 
     a.after = first; 
    } 

    last = a 
} 

Est-ce que quelque chose comme ceci est possible? Ai-je fait une erreur?

+4

Cela ressemble à des devoirs, n'est-ce pas? – Thomas

+0

Si vous insérez le dernier, pourquoi avez-vous nommé votre méthode 'insertFirst'? – Thomas

+0

mon bad.i l'a réparé. –

Répondre

1

Oui, c'est le cas.

  • laisser le dernier point courant vers le nouveau (last.setNext(newNode))
  • laisser le nouveau point au premier (newNode.setNext(first))
  • réglé le dernier à être le nouveau noeud (last = newNode)
+0

C'est en fait la mise en œuvre OPs avec un meilleur style :) – Thomas

+0

bien, je l'ai vu appelé «insertFirst» et l'a ignoré .. alors quelle est la question à propos de? – Bozho