1
Ich möchte meine verkettete Liste im Uhrzeigersinn um einen bestimmten Betrag drehen.Eine verkettete Liste im Uhrzeigersinn drehen
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;
}
ich es geschafft, meine Drehung gegen den Uhrzeigersinn zu arbeiten, um zu bekommen, aber ich bin ein bisschen verwirrt darüber, wie die Drehung im Uhrzeigersinn zu bekommen, da ich nicht vorherigen Knoten finden.
ich die Node-Klasse halten würde, und ich würde eine ListNode Klasse, die Umsetzung der FIFO erstellen. Dann würde ich die queue(), dequeue() verwenden, um den letzten Knoten zu nehmen und ihn an den Anfang der Warteschlange zu setzen. Sagen Sie mir, wenn Sie ein Beispiel schreiben möchten –
Ein Beispiel wäre hilfreich. – FiftySentos