1
Je souhaite faire pivoter ma liste chaînée d'une certaine manière dans le sens des aiguilles d'une montre.Rotation d'une liste chaînée dans le sens des aiguilles d'une montre
private class Node {
private T data; // Entry in bag
private Node next; // link to next node
private Node(T dataPortion) {
this(dataPortion, null);
} // end constructor
private Node(T dataPortion, Node nextNode) {
data = dataPortion;
next = nextNode;
} // end constructor
} // end Node
public void leftShift(int num){
if (num == 0) return;
Node current = firstNode;
int count = 1;
while (count < num && current != null)
{
current = current.next;
count++;
}
if (current == null)
return;
Node kthNode = current;
while (current.next != null)
current = current.next;
current.next = firstNode;
firstNode = kthNode.next;
kthNode.next = null;
}
j'ai réussi à obtenir mon compteur rotation dans le sens horaire pour travailler mais je suis un peu confus sur la façon d'obtenir la rotation des aiguilles d'une montre que je ne peux pas trouver des noeuds précédents.
je garderais la classe Node et je voudrais créer une classe ListNode, la mise en œuvre du FIFO. Ensuite, j'utiliserai la queue(), dequeue() pour prendre le dernier noeud et le mettre au début de la file d'attente. Dites-moi si vous voulez un pour écrire un exemple –
Un exemple serait utile. – FiftySentos