給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。
示例 1:
輸入: 1->2->3->3->4->4->5
輸出: 1->2->5
示例 2:
輸入: 1->1->1->2->3
輸出: 2->3
由於鍊錶開頭可能會有重複項,被刪掉的話頭指標會改變,而最終卻還需要返回鍊錶的頭指標。所以需要定義乙個新的節點,然後鏈上原鍊錶,然後定義乙個前驅指標和乙個現指標,前驅指標指向新建的節點,現指標從下乙個位置開始往下遍歷,遇到相同的則繼續往下,直到遇到不同項時,把前驅指標的next指向下面那個不同的元素。如果現指標遍歷的第乙個元素就不相同,則把前驅指標向下移一位。
public listnode deleteduplicates(listnode head)
prenode.next = p;
}else
}return dummy.next;
}
LeetCode 82 刪除排序鍊錶中的重複元素
題目描述 給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。示例 1 輸入 1 2 3 3 4 4 5 輸出 1 2 5示例 2 輸入 1 1 1 2 3 輸出 2 3解題思路 總體思路就是把每個不重複的值重新重新放到乙個新的鍊錶裡面即可,需要乙個新的頭節點,兩個...
Leetcode 82 刪除排序鍊錶中的重複元素
刪除重複結點,只需要記錄當前結點前的最晚訪問過的不重複結點ppre 當前結點pcur 指向當前結點後面的結點pnext的三個指標即可。如果當前節點和它後面的幾個結點數值相同,那麼這些結點都要被剔除,然後更新ppre和pcur 如果不相同,則直接更新ppre和pcur。需要考慮的是,如果第乙個結點是重...
LeetCode82 刪除排序鍊錶的重複元素 II
給定乙個已排序的鍊錶的頭 head 刪除原始鍊錶中所有重複數字的節點,只留下不同的數字 返回 已排序的鍊錶 示例 1 輸入 head 1,2,3,3,4,4,5 輸出 1,2,5 示例 2 輸入 head 1,1,1,2,3 輸出 2,3 鍊錶中節點數目在範圍 0,300 內 100 node.va...