[算法]刪除鏈表中重復的節點
阿新 • • 發佈:2019-01-10
算法 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; } }
[算法]刪除鏈表中重復的節點