给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2 输出: 1->2
示例 2:
输入: 1->1->2->3->3 输出: 1->2->3
- 当前节点的下一个指针不为空时,判断当前节点的值跟下一个指针节点的值是否相等。
- 如果相等,则将下下个节点的指针指向当前节点的下一个指针。
- 如果不相等,则指针往前移。
type ListNode struct {
Val int
Next *ListNode
}
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil {
return nil
}
ret := head
for head.Next != nil {
if head.Val == head.Next.Val {
head.Next = head.Next.Next
continue
}
head = head.Next
}
return ret
}