刪除排序鏈表中的重複元素

存在一個按升序排列的鏈表,給你這個鏈表的頭節點 head ,請你刪除全部重複的元素,使每一個元素 只出現一次java

返回一樣按升序排列的結果鏈表。node

力扣第83題: 刪除排序鏈表中的重複元素ide

解題思路:

​ 首先將鏈表複製一份,命名爲node,以避免丟失鏈表頭。鏈表若爲空,直接返回。咱們判斷鏈表值是否與第二個值相同,若是相等,就作鏈表刪除操做,即node.next = node.next.next以下圖所示。具體實現代碼請看最下方代碼實現code

image

輸入:head = [1,1,2]
輸出:[1,2]

示例2blog

輸入:head = [1,1,2,3,3]
輸出:[1,2,3]

示例3排序

輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]

提示:it

  • 鏈表中節點數目在範圍 [0, 300]
  • -100 <= Node.val <= 100
  • 題目數據保證鏈表已經按升序排列

代碼實現:

public ListNode deleteDuplicates(ListNode head) {
    if (head == null) return head;
    ListNode node = head;
    while (node.next != null) {
        if (node.val == node.next.val) {
            node.next = node.next.next;
        } else {
            node = node.next;
        }
    }
    return head;
}
相關文章
相關標籤/搜索