我不想通过显示整个代码来浪费您的时间。
目前我已经创建了一个单链表,这就是显示它后的样子。
19-->85-->50-->20-->33-->9-->1-->7-->空。
所以我创建了一个方法,可以将节点添加到列表的任何位置。
public void add_node_any(int value , int position){
listNode node = new listNode(value);
if(position == 1){
node.next = head;
head = node;
}
else {
listNode current = head ;
int count = 1;
while(count < position){
current = current.next;
count++;
}
previous.next = node;
node.next = previous.next;
}
}
我试图将节点添加到第三个位置。
single.add_node_any(2, 3);
我知道,
previous.next = node;
node.next = previous.next;
部分正在创建一个循环。我还知道,由于这个循环,我无法访问 50 个节点等。 所以我的问题是这些节点发生了什么?我看到一些声明说这些节点仍然是列表的一部分。它只是无法访问。
如果这仍然是一部分,那是怎么发生的?我的意思是,虽然重复节点 (2) 和 50(循环旁边)之间没有连接,但如何保持与列表的连接?
非常感谢您的宝贵回答。
如果您觉得我对这个问题的理论方面太过调情,我很抱歉。
但我也很欣赏你的衍生答案。
祝大家有美好的一天。
这些节点不再是列表的一部分。由于内存没有通过
delete
释放,所以这是内存泄漏。