摘要:題目要求翻譯將鏈表中重復的元素全部刪除,返回新的頭結點。相比于,這里將重復的元素全部刪除。除此以外,我們還需要知道重復元素的前一個值和重復元素的最后一個值。如果存在重復值,則跳過重復值后,前節點不變,否則前節點跟隨后節點同時向后移動。
題目要求
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3.
翻譯:將鏈表中重復的元素全部刪除,返回新的頭結點。
相比于Remove Duplicates from Sorted List I,這里將重復的元素全部刪除。
想要了解Remove Duplicates from Sorted List I,請參考我的這篇博客
這里,我們首先需要一個偽頭節點指向當前的頭節點,以確保我們最后能夠找到結果集的頭節點。除此以外,我們還需要知道重復元素的前一個值和重復元素的最后一個值。
舉個例子:如果數組元素為[1,2,2,3],那么我們需要知道1這個節點和3這個節點的位置,并將1的下一個節點指向3。特殊情況,如[1,1,2,2],這是我們就可以將偽頭結點作為我們的前節點,并將2作為我們的后節點。如果存在重復值,則跳過重復值后,前節點不變,否則前節點跟隨后節點同時向后移動。代碼如下:
public ListNode deleteDuplicates(ListNode head) { if(head==null || head.next==null){ return head; } ListNode start = new ListNode(0); start.next = head; ListNode prevNode = start; ListNode current = head; while(current != null){ if(current.next != null && current.val == current.next.val){ do{ current = current.next; }while(current.next != null && current.val == current.next.val); prevNode.next = current.next; }else{ prevNode = current; } current = current.next; } return start.next; } public class ListNode { int val; ListNode next; ListNode(int x) { val = x;} }
想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注我的微信公眾號!將會不定期的發放福利哦~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67231.html
Given a sorted linked list, delete all nodes that have duplicatenumbers, leaving only distinct numbers from the original list. https://leetcode.com/problems... # Definition for singly-linked list. # c...
摘要:思路與代碼其實在這里我們仍然延續中的思路。在遇到非重復值以及非多余的重復值時,將數值移動到當前記錄的下標上。保證該下標前的值均為滿足題目條件的值。第一次我使用了來記錄某個值出現的次數。 題目要求 Follow up for Remove Duplicates: What if duplicates are allowed at most twice? For example, Giv...
摘要:自己沒事刷的一些的題目,若有更好的解法,希望能夠一起探討項目地址 自己沒事刷的一些LeetCode的題目,若有更好的解法,希望能夠一起探討 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...
摘要:微信公眾號記錄截圖記錄截圖目前關于這塊算法與數據結構的安排前。已攻略返回目錄目前已攻略篇文章。會根據題解以及留言內容,進行補充,并添加上提供題解的小伙伴的昵稱和地址。本許可協議授權之外的使用權限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...
摘要:思路原數組長度為,則返回原數組長度不為,則至少有個元素。將所有不重復的數值賦給,而當和相等時,不做處理。最后返回的就是不同元素的個數,也是新數組的長度。只有在時,才對賦值。注意,每次初始化的時候要分兩種情況,這就意味著從的時候開始遍歷。 Remove Duplicates from Sorted Array I Problem Given a sorted array, remove ...
閱讀 2520·2021-09-26 10:18
閱讀 3397·2021-09-22 10:02
閱讀 3196·2019-08-30 15:44
閱讀 3333·2019-08-30 15:44
閱讀 1838·2019-08-29 15:25
閱讀 2581·2019-08-26 14:04
閱讀 2047·2019-08-26 12:15
閱讀 2446·2019-08-26 11:43