如何在java中反转Linked List

时间:2013-12-12 15:41:26

标签: 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;
        }
}//:~

我需要反转我的List,我正在使用方法reverseMyList,它需要Element curr。 如果我在这种情况下的思维方式是正确的吗?

提前谢谢!

3 个答案:

答案 0 :(得分:0)

由于这种看起来像家庭作业,我不会在这里列出整个解决方案,但我会解释你应该如何在概念上做到这一点。

想象一下,您有2个链接列表。你有你需要反转的输入清单,而你有一个空的输入清单。

如果您继续从原始列表中删除第一个元素,并继续将其放在新列表的前面上,直到原始列表为空,那么新的清单将是原始的,除了逆转。

答案 1 :(得分:0)

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;
    }

答案 2 :(得分:0)

您要查找的方法已存在于包jasmine.DEFAULT_TIMEOUT_INTERVAL; 中:

java.utils

此方法将在列表中直接更改元素的顺序,您不需要实例化新的列表对象 ... here您可以找到更多指定的文档