删除链表中重复的结点
生活随笔
收集整理的這篇文章主要介紹了
删除链表中重复的结点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
在一個排序的鏈表中,存在重復(fù)的結(jié)點(diǎn),請刪除該鏈表中重復(fù)的結(jié)點(diǎn),重復(fù)的結(jié)點(diǎn)不保留,返回鏈表頭指針。例如,鏈表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 {ListNode deleteDuplication(ListNode pHead){if(pHead==null) return null;ListNode p = pHead;ListNode n = new ListNode(0);ListNode pre = n; n.next = pHead;boolean flag = false; 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;}else{if(!flag){n.next = p;flag = true;} pre = p;p = q;}}return n.next;} }總結(jié)
以上是生活随笔為你收集整理的删除链表中重复的结点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符流中第一个不重复的字符
- 下一篇: 判断一个数组是否是另一个数组的子集