1. 程式人生 > >Leetcode第83題:刪除排序連結串列中的重複元素

Leetcode第83題:刪除排序連結串列中的重複元素

給定一個排序連結串列,刪除所有重複的元素使得每個元素只留下一個。

案例:

給定 1->1->2,返回 1->2

給定 1->1->2->3->3,返回 1->2->3

解題思路:使用2個指標,一個p,一個q; q = p.next;q一直遍歷直到q=null或者q.val()!=p.val();就將p的next指向q

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){
                //當p和下一個q相等時,往後移動q
                q = q.next;
            }
            p.next = q;
            p = q;
            if(p !=null){
              q = p.next;  
            }
            
        }
        return head;
    }