// my print in normal order
public void printList()
{
ListElem curr = head;
while(curr != null)
{
System.out.print(curr.getData() + "->");
curr = curr.getNext();
}
}
// my attempt to print in reverse order
public void printListRev()
{
ListElem curr = head;
if(curr == null) return;
printListRev();
System.out.print(curr.getData() + " ");
}
Ponieważ ta metoda nie przyjmuje żadnych argumentów, nie jestem pewien, jak zrobić to rekurencyjnie. Próbuję dowiedzieć się, jak wydrukować elementy (ciągi znaków) na pojedynczo połączonej liście.
2 odpowiedzi
Nie jest łatwo zrobić z listą pojedynczo połączoną, gdyby była to lista podwójnie połączona i można było uzyskać ostatni element (element ogonowy), to wykonanie w odwrotnej kolejności byłoby łatwiejsze, ale jak to mówisz jest listą pojedynczo połączoną Sugeruję, aby załadować wszystkie elementy do tablicy w funkcji w odwrotnej kolejności i wydrukować ją bezpośrednio, jest to obejście innych metod, nie jest możliwe ... to jest moja spostrzeżenie
Po prostu przeprowadź iterację listy i utwórz ciąg, dołączając dane każdego elementu:
public void printListRev()
{
ListElem curr = head;
String result = "";
while(curr != null)
{
result = curr.getData() + "->" + result;
curr = curr.getNext();
}
System.out.print(result);
}
Podobne pytania
Powiązane pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].
printListRev
?