golang力扣leetcode 82.删除排序链表中的重复元素II

简介: golang力扣leetcode 82.删除排序链表中的重复元素II

题解

由于链表的头节点可能会被删除,因此我们需要额外使用一个哑节点(dummy node)指向链表的头节点。

当遍历完整个链表之后,我们返回链表的的哑节点的下一个节点 dummy.next 即可

哑节点是在处理与链表相关的操作时,设置在链表头之前的指向链表头的节点,用于简化与链表头相关的操作。

代码

package leetcode
type ListNode struct {
  Val  int
  Next *ListNode
}
func deleteDuplicates(head *ListNode) *ListNode {
  cnt := &ListNode{}
  cnt.Next = head
  head = cnt
  for head.Next != nil && head.Next.Next != nil {
    if head.Next.Val == head.Next.Next.Val {
      rmVal := head.Next.Val
      for head.Next != nil && head.Next.Val == rmVal {
        head.Next = head.Next.Next
      }
    } else {
      head = head.Next
    }
  }
  return cnt.Next
}
目录
相关文章
|
2月前
【bug记录】旋转链表与力扣报错:member access within null pointer of type ‘struct ListNode‘
【bug记录】旋转链表与力扣报错:member access within null pointer of type ‘struct ListNode‘
|
3月前
|
Java
力扣经典150题第五十八题:合并两个有序链表
力扣经典150题第五十八题:合并两个有序链表
33 2
|
3月前
|
Java
力扣经典150题第六十题:反转链表 II
力扣经典150题第六十题:反转链表 II
22 1
|
3月前
|
存储 Java
力扣经典150题第五十九题: 随机链表的复制
力扣经典150题第五十九题: 随机链表的复制
29 1
|
4月前
|
Java Python
二刷力扣--链表
二刷力扣--链表
|
4月前
|
Go
【golang】golang 字符串切片排序
【golang】golang 字符串切片排序
54 1
|
4月前
|
存储 算法 数据可视化
深入解析力扣160题:相交链表的解决方法(哈希表法与双指针法详细图解)
深入解析力扣160题:相交链表的解决方法(哈希表法与双指针法详细图解)
|
3月前
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
链表4(法二)------7-4 sdut-C语言实验-单链表中重复元素的删除
25 0
|
3月前
2670.找出不同元素数目差数组-力扣(LeetCode)
2670.找出不同元素数目差数组-力扣(LeetCode)
22 0
|
3月前
|
索引
821.字符的最短距离-力扣(LeetCode)
821.字符的最短距离-力扣(LeetCode)
23 0