可以解释一下为什么第二个空是q吗

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

p和q是两个指针
最初它们都指向head(其实p指向哪里无所谓)
代码运行起来之后,
每次把p指向一个新的节点(重新分配内存),然后把q的下一项指向p,再把p的下一项指向空
此时必须把q重新指向p
否则你继续添加下一项的时候,q还指向的是head,并没有变成下一个节点的地址,那么你新节点就不是挂在刚才新增的节点后面,而是依然挂在head后面,把之前的覆盖掉了