[英]How to reverse LinkedList in java
請先接受我的道歉,但是我無法在Java中顛倒我的鏈接列表。
我有上課和內課:
MyList{
class Element{
private Element next;
public Element getNext(){return next;}
}
public void reverseMyList(Element curr) {
if (curr.next == null) {
head = curr.next;
return;
}
reverseMyList(curr.next);
while (curr.next != null) {
curr.next.next = curr.next;
curr.next = null;
}
}//:~
我需要反轉我的列表,我使用的是方法reverseMyList,它需要Element curr。 在這種情況下我的思維方式是否正確?
先感謝您!
由於這有點像作業,因此在這里我不會介紹整個解決方案,但是我將解釋您應該如何從概念上解決問題。
假設您有2個鏈接列表。 您有需要反轉的輸入列表,並且有一個空列表。
如果您繼續從原始列表中刪除第一個元素,並一直將其放在新列表的前面 ,直到您的原始列表為空,則新列表將是原始列表,除非相反。
public static void Reverse(Element element)
{
Element current = element;
Element next = current.Next;
Element nextToNext;
var first = current;
while (next != null && next.Next != null)
{
nextToNext = next.Next;
next.Next = current;
current = next;
next = nextToNext;
}
if (next != null)
{
next.Next = current;
}
first.Next = null;
}
您正在尋找的方法已經存在於包java.utils
:
Collections.reverse(mylist);
此方法將直接更改列表中元素的順序,並且您無需實例化新的列表對象 ... 在這里您可以找到更多指定的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.