申明:本文只用做自己的学习记录
题目
存在一个按升序排列的链表,给出这个链表的头节点 head ,请删除所有重复的元素,使每个元素 只出现一次
返回同样按升序排列的结果链表
示例 1:
输入:head = [1,1,2]
输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3]
输出:[1,2,3]
代码
type ListNode struct {
Val int
Next *ListNode
}
func deleteDuplicates(head *ListNode) *ListNode {
//边界条件
if head == nil || head.Next == nil {
return head
}
//新建链表头
dunmmy := &ListNode{Val: 0, Next: head}
//新建指针
temp := dunmmy
//当当前节点和下一节点不为空时
for temp.Next != nil && temp.Next.Next != nil {
//判断当前节点是否等于下一节点
if temp.Next.Val == temp.Next.Next.Val {
//如果等于,则删除当前节点
temp.Next = temp.Next.Next
} else {
//不等于就遍历下一个节点
temp = temp.Next
}
}
//返回头结点
return dunmmy.Next
}