删除排序链表中的重复元素的golang实现

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

输入: 1->1->2
输出: 1->2
输入: 1->1->2->3->3
输出: 1->2->3

我们先来看看图示:

引入一个curr指针,指向头元素

判断curr.Val==curr.Next.Val,如果是一样的话,那就把curr.Next指向curr.Next.Next

如果curr.Val!=curr.Next.Val,那我们就要推进curr了,curr = curr.Next

func deleteDuplicates(head *ListNode) *ListNode {
    if head == nil {
        return nil
    }
    curr := head
    for curr.Next != nil {
        if curr.Val == curr.Next.Val {
            curr.Next = curr.Next.Next
        } else {
            curr = curr.Next
        }
    }
    return head
}

 

posted @ 2018-12-07 11:45  timliudream  阅读(518)  评论(0编辑  收藏  举报