/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func removeElements(head *ListNode, val int) *ListNode { dummy := &ListNode{0, head} for curr := dummy; curr.Next != nil; { if curr.Next.Val == val { curr.Next = curr.Next.Next } else { curr = curr.Next } } return dummy.Next; }