力扣链接:
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
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。