public void insertion(int data)
{
Node new_node = new Node(data);
if(head==null)
{
head=new_node;
}
new_node.next=head;
head=new_node;
}
我想在head为空时插入new_node。
我想把第一个值插入到节点中,却得到无限循环。
当 head == null
是真的,你基本上是这样的。
head = new_node;
new_node.next = head;
仔细考虑这些线条。在第一行运行之后。head
是 new_node
. 考虑到这一点,第二行基本上相当于
new_node.next = new_node;
这应该突出了问题所在。你把新节点的尾巴设置成了自己的尾巴!这将导致循环列表在迭代时无限地继续下去。这将导致一个循环列表,在迭代时将无限地继续下去。
你只想设置 head's
接下来when
脑袋*wasn't*
null`最初。
public void insertion(int data)
{
Node new_node = new Node(data);
if(head==null)
{
head=new_node;
} else {
new_node.next=head; // Only execute these lines if head already existed
head=new_node;
}
}