劍指Offer-連結串列-(8)
阿新 • • 發佈:2018-12-18
知識點/資料結構:連結串列
題目描述
在一個排序的連結串列中,存在重複的結點,請刪除該連結串列中重複的結點,重複的結點不保留,返回連結串列頭指標。 例如,連結串列1->2->3->3->4->4->5 處理後為 1->2->5
注意點:
就是指標的引用發生了改變,需要藉助新的起始點來進行指標的操作。
直接上程式碼;
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ import java.util.LinkedList; public class Solution { public ListNode deleteDuplication(ListNode pHead) { if (pHead == null) return null; ListNode n = new ListNode(0); n.next = pHead; ListNode pre = n; ListNode p = pHead; while (p != null) { ListNode q = p.next; if (q == null) break; if (q.val == p.val) { while (q != null && q.val == p.val) { q = q.next; } pre.next = q; p = q;//更新p的值 } else { pre = p; p = q; } } return n.next; } }