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为null时插入new_node。
我正在插入要插入节点的第一个值的无限循环
答案 0 :(得分:0)
当head == null
为true时,您实际上是这样做的:
head = new_node;
new_node.next = head;
仔细考虑这些行。第一行运行后,head
是 new_node
。考虑到这一点,第二行基本上等同于
new_node.next = new_node;
哪个应该突出问题。您正在将新节点的尾部设置为自身!这将导致一个循环列表,该列表在迭代时将无限地继续。
您最初只想设置head's
下一个when
头*wasn't*
空`
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;
}
}