赞
踩
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
如果要删除的是中间节点会很容易,但是如果要删除的节点位于头部,问题就会变得麻烦。
因此可以参考哨兵的思想,在第一个节点head的前面设置一个header即可。
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func removeElements(head *ListNode, val int) *ListNode { header := ListNode {} current := &header current.Next = head for current.Next != nil { if current.Next.Val == val { current.Next = current.Next.Next } else { current = current.Next } } return header.Next }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。