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
}
目录
相关文章
|
3小时前
|
索引
每日一题:力扣328. 奇偶链表
每日一题:力扣328. 奇偶链表
13 4
|
3小时前
leetcode代码记录(下一个更大元素 II
leetcode代码记录(下一个更大元素 II
7 0
|
3小时前
|
索引
leetcode代码记录(下一个更大元素 I
leetcode代码记录(下一个更大元素 I
7 0
|
3小时前
leetcode代码记录(移除链表元素
leetcode代码记录(移除链表元素
10 0
|
3小时前
leetcode代码记录(移除元素
leetcode代码记录(移除元素
9 0
|
3小时前
【每日一题】LeetCode——反转链表
【每日一题】LeetCode——反转链表
|
3小时前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
3小时前
|
存储
LeetCode刷题---817. 链表组件(哈希表)
LeetCode刷题---817. 链表组件(哈希表)
|
3小时前
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
3小时前
|
算法 安全 数据处理
LeetCode刷题---707. 设计链表(双向链表-带头尾双结点)
LeetCode刷题---707. 设计链表(双向链表-带头尾双结点)