203. 移除链表元素

需要设置一个前置节点 这个时候可以需要设置一个哨兵节点dummyHead 可以在删除的第一个节点的时候非常方便处理
package mainimport "fmt"type ListNode struct {Val intNext *ListNode}func removeElements(head *ListNode, val int) *ListNode {dummyHead := &ListNode{Val: -1,Next: head,}preNode := dummyHeadfor head != nil {if head.Val == val {next := head.NextpreNode.Next = nexthead = next} else {preNode = headhead = head.Next}}return dummyHead.Next}func main() {one := &ListNode{Val: 1}two := ListNode{Val: 2}one.Next = &twothree := ListNode{Val: 6}two.Next = &threefour := ListNode{Val: 3}three.Next = &fourfive := ListNode{Val: 4}four.Next = &fivesix := ListNode{Val: 5}five.Next = &sixseven := ListNode{Val: 6}six.Next = &sevenremoveElements(one, 6)curr := onefor curr != nil {fmt.Println(curr.Val)curr = curr.Next}}

