当前位置:   article > 正文

LeetCode203.移除链表元素Golang版_go 移除链表元素

go 移除链表元素

LeetCode203.移除链表元素Golang版

1. 题目描述

删除链表中等于给定值 val 的所有节点。

示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

2. 思路

如果要删除的是中间节点会很容易,但是如果要删除的节点位于头部,问题就会变得麻烦。
因此可以参考哨兵的思想,在第一个节点head的前面设置一个header即可。

3. 代码

/**
 * 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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/850415
推荐阅读
相关标签
  

闽ICP备14008679号