![](/img/trans.png)
[英]I declared my variable before the if-loop but I can't access it outside of the loop?
[英]Why can't I modify a LinkedList declared outside a loop inside said loop?
我正在尝试创建一个通过循环添加到其中的LinkedList。
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public class Something {
public void method() {
ListNode node = null;
ListNode out = node;
for (int i = 0; i < 10; i++) {
node = new ListNode(i);
node = node.next;
}
return out;
}
}
这在我脑海中的运作方式是这样的:
node->null;
node->null;
^
|
out
out->0->null
^
|
node
...
out->0->1->2->3->4->5->6->7->8->9->null
^
|
node
但是, out
返回null,就好像循环根本不会运行。 如何获得我描述的行为?
这可能应该按预期工作。 首先,您必须分配一个初始节点,然后再分配下一个节点。 在新创建的下一个节点上,您甚至可以进一步创建下一个节点。
public static void main(String[] args) {
ListNode k = Something.method();
while(k.next != null){
System.out.println(k.val);
k = k.next;
}
}
private static class ListNode {
int val;
ListNode next = null;
ListNode(int x) { val = x; }
}
public static class Something {
public static ListNode method() {
ListNode node = new ListNode(0);
ListNode out = node;
for (int i = 1; i < 10; i++) {
node.next = new ListNode(i);
node = node.next;
}
return out;
}
}
然后,返回初始节点,该节点包含“第一个”节点和下一个节点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.