国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

刪除鏈表中的重復的結點

2019-11-08 03:05:44
字體:
來源:轉載
供稿:網友

題目描述

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

算法解析: 我們從頭到尾遍歷整個鏈表,如果當前結點值和下一結點值相同,就都可以刪除,但我們需要將之前的結點保存下來,用于保證鏈表不會在刪除的過程中斷開,當然需要注意的是,如果需要刪除的結點包括頭結點,那么我們需要實時更新頭結點。

代碼如下:

public ListNode deleteDuplication(ListNode pHead) { if (pHead == null){ return null; } ListNode temp = pHead; ListNode PReNode = null; while (temp != null){ ListNode pNext = temp.next; boolean needDelete = false; if (pNext != null && pNext.val == temp.val){ needDelete = true; } if (!needDelete){ preNode = temp; temp = temp.next; }else{ int value = temp.val; ListNode pToBeDel = temp; while (pToBeDel != null && pToBeDel.val == value){ pNext = pToBeDel.next; pToBeDel = pNext; } if (preNode == null){ pHead = pNext; }else { preNode.next = pNext; } temp = pNext; } } return pHead; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五常市| 隆尧县| 星子县| 全椒县| 大悟县| 安陆市| 乌拉特前旗| 天镇县| 诏安县| 长顺县| 兴仁县| 墨江| 吉安县| 余庆县| 贺兰县| 南昌市| 汾西县| 屏东市| 平顶山市| 金门县| 蓬溪县| 丹江口市| 根河市| 阿克苏市| 湘潭县| 望都县| 项城市| 镇巴县| 大宁县| 延庆县| 辽阳市| 九江县| 闵行区| 德安县| 临安市| 太湖县| 房山区| 许昌县| 芦山县| 临西县| 太仓市|