原文链接:203.移除链表元素
根据题意创建出一个虚拟头节点,Next指向当前链表的头节点
遍历该链表,直至末尾
判断当前节点指向的下一个节点的val值是否为给定Val,如果是,则将当前节点的next指向下一个节点的next,也就是virtual.Next = virtual.Nexr.Next
如果不是,则将当前节点的next赋值给虚拟头节点
返回链表头节点
代码块:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func removeElements(head *ListNode, Val int) *ListNode {
cur := &ListNode{0,head}
virtual := cur
for virtual.Next !=nil{
if virtual.Next.Val ==Val{
virtual.Next = virtual.Next.Next
}else
{
virtual = virtual.Next
}
}
return cur.Next
}