题目:力扣203:移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
示例 1:
输入: head = [1,2,6,3,4,5,6], val = 6
输出: [1,2,3,4,5]
解析:
type ListNode struct {
Val int
Next *ListNode
}
func removeElements(head *ListNode, val int) *ListNode {
if head == nil{
return head
}
var dummy = &ListNode{Val:-1}
dummy.Next = head
var pre = dummy
cur := head
for{
if cur == nil {
break
}
if cur.Val == val{
pre.Next = cur.Next
}else{
pre = cur //开始我写错了!!!
}
cur = cur.Next
}
return dummy.Next
}
反思:
代码24行这里我开始写错了,写成pre.next = cur,实际应该是pre移动,如果next移动,那最后返回数据会少很多数据