這個題要求刪除已排好序的鏈表中的重複項, 例如1->1->2->3->3刪除之後就是1->2->3。
思路是令p指向當前節點每次循環找到一個q.next.val != q.val, 然後令p.next = q.next 就可以實現刪除p.val對應的重複項了。
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null)
return head;
ListNode p = head;
while (p != null && p.next != null) {
ListNode q = p;
while (q.next != null && q.next.val == q.val) {
q = q.next;
}
p.next = q.next;
p = p.next;
}
return head;
}