我在这方面遇到了一些很大的困难。
对于数组[6,10,15,24],单链表如何? p.next指的是什么?
p.next = p.next.next;
p.next = new Node(19, p.next);
p.next.next = new Node(28);
p.next.next = p;
如果有人能向我解释发生了什么,我将不胜感激。我一直在努力工作,而且一直困扰着我。
答案 0 :(得分:0)
基本上,Node有一个值并指向一个新节点。
如果Node的构造函数是Node(value,nextNode),那么这里有一些代码可以创建一个将该数组转换为NodeList的列表。
int[] arr = {6, 10, 15, 24};
Node currentNode = null;
for(int x = arr.length - 1; x >= 0; x--)
currentNode = new Node(arr[x], currentNode);
这有点复杂,但我会尝试解释它。你有你的数组和一个null的Node。然后,您向后遍历阵列。您创建一个新的Node,它具有数组的最后一个索引的值并指向null。然后,向下移动阵列并使用一个指向您创建的最后一个节点的新节点。希望这是有道理的。随意提问。
.next
指向列表中的下一个节点。
编辑:以下所有内容
我将用于节点的表示法:[val]->nodePointingTo
完成后,列表将如下所示。
[6] -> [10] -> [15] -> [24] -> null
在线性NodeList中,必须在结尾使用null,因为它是显示结束的唯一方法。
这就是循环中发生的事情。
currentNode的值:null
。
currentNode的值:[24] -> null
currentNode的值:[15] -> [24]
//我只会指向currentNode的下一个节点
currentNode的值:[10] -> [15]
currentNode的值:[6] -> [10]
结束。
最终输出将为6,指向一个值为10的节点。该节点指向一个值为15的节点。该节点指向一个值为24的节点。该节点为指向null
,因为它没有其他指向它。
我希望这可以解决问题。