LeetCode83 刪除連結串列中的重複元素 保留一個
阿新 • • 發佈:2018-12-15
給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 |
---|
示例 1: 輸入: 1->1->2 輸出: 1->2
示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->3 | |
和劍指offer中的連結串列問題題設不相同,此題要求保留一個有重複的元素。 設定倆個指標,p,q,分別代表當前節點和當前節點的next。
- 將q指標往後移動,指向第一個和p.val不相同的節點, 通過next連線。p.next=q;
- p=q,q再重新指向下一個節點。
- 重複迭代的過程。
class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==null || head.next==null){ return head; } ListNode p=head ; ListNode q=p.next; while(p!=null&& q!=null){ while(q!=null && p.val==q.val){ q=q.next; } p.next=q; p=q; if(p!=null){ q=p.next; } } return head; } }