Java-使用for循环反转单链接列表
因此,现在的挑战是尝试获取一个LinkedList L,并创建一个新的LinkedList反转,反转为L。我需要使用forloop来完成这一点。这就是我到目前为止所做的: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
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);
}