Java-使用for循环反转单链接列表

Java-使用for循环反转单链接列表,java,linked-list,reverse,Java,Linked List,Reverse,因此,现在的挑战是尝试获取一个LinkedList L,并创建一个新的LinkedList反转,反转为L。我需要使用forloop来完成这一点。这就是我到目前为止所做的: public void ReverseL(Intco obj) { ListNode p = obj.c; ListNode RevL = c; int index = obj.get_howmany(); if (obj.c != null) { while (this.get

因此,现在的挑战是尝试获取一个LinkedList L,并创建一个新的LinkedList反转,反转为L。我需要使用forloop来完成这一点。这就是我到目前为止所做的:

public void ReverseL(Intco obj) {
    ListNode p = obj.c;
    ListNode RevL = c;
    int index = obj.get_howmany();
    if (obj.c != null) {
        while (this.get_howmany() != obj.get_howmany()) {
            p = obj.c;
            for (int i = index; i <= 0; i--) {
                p = p.link;
            }
            RevL = new ListNode(p.info, RevL);
            howmany++;
            index--;
        }
    }
    c = RevL;
}
以防万一,下面是LinkedList的私有类:

private class ListNode {

    private int info;
    private ListNode link;

    public ListNode() {
        info = 0;
        link = null;
    }

    public ListNode(int i, ListNode next) {
        info = i;
        link = next;
    }
}
如您所见,它只是重复了我在原始linkedlist中的最后一个整数。任何帮助都将不胜感激

试试改变

for (int i = index; i <= 0; i--) {
            p = p.link;
        }

您可以实现一个名为get(int-index)的函数。通过它运行for循环。 此get函数将遍历n,n-1,n-2,2,1

假设你有一张10号的单子。循环如下:

for(int i=size; i>0; i-- {
   get(index);
}

现在介绍如何实现get(int-index)。因为它是一个单链表。除了将列表从第1个遍历到所需的索引之外,没有其他方法。

这里的
Intco L
是什么?它接收包含链接列表的Intco对象L@Bunti I将其更改为obj,以使其更加清晰。这就是你要问的吗?你想用一个
while
循环和
for
循环来实现什么?而且,当您以相反的顺序迭代时,您尝试访问当前节点的
next
链接,该链接在循环的第一次运行中不存在。但是您需要有一种通过索引访问每个元素的方法,以便可以轻松访问实际的前一个节点。因为这是一个单链表,您不能以相反的顺序循环,不能使用
next
element和'while'循环访问下一个元素,所以我希望在RevL包含与通过该方法传递的obj相同数量的整数后,所有内容都停止。“for”循环是迭代通过的obj。它抛出java.lang.NullPointerException错误。我现在正在上面添加更多的细节,它是在p=p.link行抛出的吗?是的,在p=p.link行
for (int i = index; i >= 0; i--) {
            p = p.link;
        }
for(int i=size; i>0; i-- {
   get(index);
}