前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >82. 删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II

原创
作者头像
Michel_Rolle
修改2021-03-01 14:45:58
修改2021-03-01 14:45:58
2.5K0
举报
文章被收录于专栏:LeetCode解题LeetCode解题

82. 删除排序链表中的重复元素 II

链接

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例1

代码语言:txt
复制
输入: 1->2->3->3->4->4->5
输出: 1->2->5

示例2

代码语言:txt
复制
输入: 1->1->1->2->3
输出: 2->3

题解

代码语言:txt
复制
type ListNode struct {
	Val  int
	Next *ListNode
}

func deleteDuplicates(head *ListNode) *ListNode {
	// 长度 <=1 的 list ,可以直接返回
	if head == nil || head.Next == nil {
		return head
	}

	// 要么 head 重复了,那就删除 head
	if head.Val == head.Next.Val {
		for head.Next != nil && head.Val == head.Next.Val {
			head = head.Next
		}
		return deleteDuplicates(head.Next)
	}

	// 要么 head 不重复,递归处理 head 后面的节点
	head.Next = deleteDuplicates(head.Next)
	return head
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 82. 删除排序链表中的重复元素 II
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档