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

/**

  • Definition for singly-linked list.

  • type ListNode struct {

  • Val int
    
  • Next *ListNode
    
  • }
    */
    func deleteDuplicates(head *ListNode) *ListNode {
    cur := head
    prevnode := &ListNode{}
    prev := -1 << 53
    for cur != nil {
    if cur.Val == prev {
    // prev表示上一个node的值
    // 和前一个节点相同,删除
    prevnode.Next = cur.Next
    cur.Next = nil
    cur = prevnode.Next // 右边移动
    // memory leak
    // 如果删除的话上一个节点,和其值不应该变
    } else {
    prevnode = cur
    prev = cur.Val
    cur = cur.Next
    }
    }

    return head
    }

你可能感兴趣的:(删除排序链表中的重复元素)