Je pensais à une solution à ce problème.Implémenter un algorithme pour insérer un nœud dans une liste chaînée circulaire sans le traverser
Mon entrée:
1. Avoir un pointeur de queue qui pointe vers le dernier noeud.
2. Une fois que vous connaissez le dernier pointeur, vous pouvez facilement ajouter un nouveau nœud à côté de celui-ci.
Void Insert(Node N)
{
if (head == null) // linked list is empty
{
head = N; tail = N; tail.Next = head;
}
else
{
Node temp = tail.Next; // since this is circular tail will point to head
Tail.Next = N;
N.Next = temp; // correct
tail = N;
}
}
Peut-on envisager une meilleure solution sans utiliser de pointeur de queue? Aussi comme indiqué dans le problème sans traverser? Ceci est une question d'entrevue, juste besoin d'entrées pour trouver la meilleure solution.
où est le point d'insertion? – Cambium
après le dernier nœud – Learner
Il y a un bug ici, je crois que ce devrait être N.Next = temp. A part ça, ça me semble une très bonne façon de faire les choses ... – Jaime