单向链表数据结构运行原理?

img

img

img


第46行没看懂,我翻译过来就是当前节点的元素不等于传进来的元素,假如我原先新增了1 2 4三个元素,现在删除方法中传进来3,while循环条件成立,没有不是应该啥都不删除吗?他还删了,是删了啥?

无非就是,用前一个节点的指针区域,指向后一个节点的首地址,以此来建立连接。需要注意的是,在链表中间插入一个节点时,前后断开的时候,需要确保后边部分的链表能被找到,不要丢失,这牵扯到一个赋值顺序问题

while循环体就是把currentNode赋值为本次循环的后一个节点,lastNode赋值为当前节点,nextNode赋值为下一个的下一个节点,这样依次赋值。

你的疑问没问题,他的删除写法问题很大;当删除元素不存在时会遍历到链表表尾,他这种写法会导致空指针异常;