diff --git a/remove-linked-list-elements/sol.go b/remove-linked-list-elements/sol.go new file mode 100644 index 0000000..9432524 --- /dev/null +++ b/remove-linked-list-elements/sol.go @@ -0,0 +1,19 @@ +package main + +type ListNode struct { + Val int + Next *ListNode +} + +func removeElements(head *ListNode, val int) *ListNode { + top := &ListNode{Val: 0, Next: head} + last := top + for current := head; current != nil; current = current.Next { + if current.Val == val { + last.Next = current.Next + } else { + last = current + } + } + return top.Next +}