LeetCode83. 删除链表中的重复元素Golang版
1. 问题描述
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
2. 思路
遍历过程中,记录当前节点的前一个节点,如果发现当前节点重复,删除当前元素
3. 代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil {
return nil
}
if head.Next == nil {
return head
}
pre := head
cur := head.Next
for cur != nil {
if cur.Val == pre.Val {
pre.Next = cur.Next
} else {
pre = cur
}
cur = cur.Next
}
return head
}