国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[LintCode] Remove Duplicates form Sorted List I &a

int64 / 2634人閱讀

摘要:和上一道題不同的地方就是,需要用雙指針操作,且最后要返回,以防止結點即的情況返回錯誤的結果。令,用進行查重操作,是的前結點。當和等值的時候,后移至第一個不等值的點,用指向新的即可。

Remove Duplicates form Sorted List I Problem

Given a sorted linked list, delete all duplicates such that each element appear only once.

Example

Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

Note

遇到后一個結點和當前結點相等,就用當前結點指向下一個的下一個結點。

Solution
public class Solution {
    public static ListNode deleteDuplicates(ListNode head) { 
        if (head == null) return head;
        ListNode node = head;
        while (node.next != null) {
            if (node.val == node.next.val) node.next = node.next.next;
            else node = node.next;
        }
        return head;
    }  
}
Remove Duplicates form Sorted List II Problem

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

Example

Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

Note

和上一道題不同的地方就是,需要用雙指針操作,且最后要返回dummy.next,以防止head結點即duplicate的情況返回錯誤的結果。
pre = dummy, cur = head,用cur進行查重操作,precur的前結點。當curcur.next等值的時候,cur后移至第一個不等值的點,用pre指向新的cur即可。

Solution
public class Solution {
    public static ListNode deleteDuplicates(ListNode head) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode pre = dummy, cur = head;
        while (cur != null && cur.next != null) {
            if (cur.val == cur.next.val) {
                int val = cur.val;
                while (cur != null && cur.val == val) cur = cur.next;
                pre.next = cur;
            }
            else {
                pre = pre.next;
                cur = cur.next;
            }
        }
        return dummy.next;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65790.html

相關文章

  • [LintCode/LeetCode] Remove Duplicates from Sorted

    摘要:思路原數組長度為,則返回原數組長度不為,則至少有個元素。將所有不重復的數值賦給,而當和相等時,不做處理。最后返回的就是不同元素的個數,也是新數組的長度。只有在時,才對賦值。注意,每次初始化的時候要分兩種情況,這就意味著從的時候開始遍歷。 Remove Duplicates from Sorted Array I Problem Given a sorted array, remove ...

    WalkerXu 評論0 收藏0
  • leetcode82. Remove Duplicates from Sorted List II

    摘要:題目要求翻譯將鏈表中重復的元素全部刪除,返回新的頭結點。相比于,這里將重復的元素全部刪除。除此以外,我們還需要知道重復元素的前一個值和重復元素的最后一個值。如果存在重復值,則跳過重復值后,前節點不變,否則前節點跟隨后節點同時向后移動。 題目要求 Given a sorted linked list, delete all nodes that have duplicate number...

    崔曉明 評論0 收藏0
  • 82. Remove Duplicates from Sorted List II

    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...

    zhou_you 評論0 收藏0
  • leetcode83 Remove Duplicates from Sorted List從有序鏈表

    摘要:題目要求從有序鏈表中刪除重復的數字,并且返回刪除后的頭結點例如輸入鏈表為返回這題和相似,只是數據結構從數組變成了鏈表若還有更好的思路,請多多指教想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注我的微信公眾 題目要求: 從有序鏈表中刪除重復的數字,并且返回刪除后的頭結點例如輸入鏈表為1->1->2,返回1->2 這題和leetcode26相似,只是數據結構從數組變成了鏈表 /*...

    JessYanCoding 評論0 收藏0
  • [Leetcode] Remove Duplicates from Sorted Array 移除有

    摘要:雙指針法復雜度時間空間思路我們可以將不重復的序列存到數列前面,因為不重復序列的長度一定小于等于總序列,所以不用擔心覆蓋的問題。代碼雙指針法復雜度時間空間思路思路和上題一樣,區別在于記錄前兩個遍歷到的數字來幫助我們判斷是否出現了第三遍。 Remove Duplicates from Sorted Array I Given a sorted array, remove the dupl...

    kel 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<