力扣链接:
https://leetcode-cn.com/probl…
解题思路:
- 本题要求删除链表中值为 val 的节点,咱们在解决链表问题的时候,因为头节点比拟非凡,与其余节点的解决形式不同,为了放弃所有节点的解决形式雷同,咱们应用一个虚构节点作为头节点,指向链表的真正头节点,最初返回的时候返回虚构节点的下一个节点即可
type ListNode struct {
val int
next *ListNode
}
func removeElements(head *ListNode, val int) *ListNode { // 判断以后和以后的下一位是否为空
dummyHead := &ListNode{}
dummyHead.Next = head
cur := dummyHead
for cur != nil && cur.Next != nil {
if cur.Next.Val == val {cur.Next = cur.Next.Next}
cur = cur.Next
}
return dummyHead.Next
}