链表相关算法题
小细节
初始化问题

我们这样子new一个ListNode
它里面的默认值是0,所以我们不能这样

如果我们为空,我们要返回null

节点结束条件判断(多创建节点问题)
参考示例3217

解析:
我的答案是多了一个无用节点

这是因为我每次都是在当前节点添加,然后直接创建下一个新节点
例如下面的

那你怎么能保证我下一个节点一定会用到呢?如果用不到的话他默认值为0,那我们要收集的答案不久多了一个无用节点?
所以我现在就换个思路
我们一般来说是有个头节点的对吧?
两种头节点
无值头节点:result.next才是我们真正的结果,也就是result这个节点是不存值的,我们的答案是result.next,下一开始才是我们的正式答案
有值头节点:result就是我们的真正结果,一开始就存了值
我后面就用第一种节点的方式了
也就是我们符合了要加入节点的条件,我们才创建节点
我们用创建一个新的节点,也就是.next,用这个下一个节点来装填我们的新的元素,这样子就不会多创建一个无用节点了

遍历链表
1290二进制链表转整数
每往右遍历一位,我们的结果就多×2

2180合并零之间的节点

817链表组件

删除节点
203移除链表元素

3217移除数组中存在的节点

83删除排序链表中重复的元素

82删除排序链表中重复的元素2

237删除链表中的节点
不能操作头节点
我们只能操作准备被删除的那个节点
所以我们直接简洁地跳过这个节点就好了

插入节点
2807在链表中插入最大公约数

147对链表进行插入排序


反转链表
206反转链表

92反转链表2

