1. 程式人生 > >[算法]刪除鏈表中重復的節點

[算法]刪除鏈表中重復的節點

算法 turn span urn lis 排序 nbsp else 題目

題目描述

在一個排序的鏈表中,存在重復的結點,請刪除該鏈表中重復的結點,重復的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後為 1->2->5

代碼

/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead){
        
if(pHead == null || pHead.next == null){ return pHead; } ListNode head = new ListNode(-1); head.next = pHead; ListNode p = head; ListNode q = head.next; while(q != null){ while(q.next != null && q.next.val == q.val){ q
= q.next; } if(p.next == q){ p = q; q = q.next; }else{ q = q.next; p.next = q; } } return head.next; } }

[算法]刪除鏈表中重復的節點