1. 程式人生 > >LeetCode:刪除排序連結串列中的重複元素 II

LeetCode:刪除排序連結串列中的重複元素 II

給定一個排序連結串列,刪除所有含有重複數字的節點,只保留原始連結串列中 沒有重複出現 的數字。

示例 1:

輸入: 1->2->3->3->4->4->5
輸出: 1->2->5

示例 2:

輸入: 1->1->1->2->3
輸出: 2->3

思路:建立一個新的連結串列 遍歷舊連結串列 若重複則跳過,否則加入連結串列 記得最後尾節點後接NULL

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if(head==null){
            return null;
        }
        ListNode mResult=new ListNode(0);
        ListNode mhead=mResult;
        ListNode currentNode=head;
        while(currentNode!=null){
          if(currentNode.next!=null&&currentNode.val==currentNode.next.val){
              while(currentNode.next!=null&&currentNode.val==currentNode.next.val){
                  currentNode=currentNode.next;
              }
          }else{
              mhead.next=currentNode;
              mhead=currentNode;
          }
            currentNode=currentNode.next;
        }
        mhead.next=null;
        return mResult.next;
    }
}

相關推薦

leetcode83:刪除排序連結串列重複元素

思想: 由於連結串列是排序的,只要判斷head和head.next的val值是否相等,若相等則head.next = head.next.next 反之head = head.next 為了返回,將head暫存dummy # Definition for singly-

LeetCode-刪除排序連結串列重複元素

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-famil

leetcode 刪除排序連結串列重複元素

題目描述: 給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 示例 1: 輸入: 1->1->2 輸出: 1->2 示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->3

LeetCode:刪除排序連結串列重複元素 II

給定一個排序連結串列,刪除所有含有重複數字的節點,只保留原始連結串列中 沒有重複出現 的數字。 示例 1: 輸入: 1->2->3->3->4->4->5 輸出: 1->2->5 示例 2: 輸入: 1->

LeetCode(Remove Duplicates from Sorted List) 兩道刪除排序連結串列重複數字

題目要求: Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, ret

java 刪除linkedlist連結串列重複元素

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

刪除排序連結串列重複的結點

題目是如此的清楚,以至於不會造成誤解。現將要點羅列如下: 連結串列為空,不必多說; 如果恰恰是頭結點與頭結點的後一個重複了,這種情況是可以發生的,那頭結點就要被刪除,另選新的結點作為頭

LeetCode 83. 刪除排序連結串列重複元素(Remove Duplicates from Sorted List)

題目描述 給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 示例1: 輸入: 1->1->2 輸出: 1->2 示例2: 輸入: 1->1->2->3->3 輸出: 1->2->3 解題思

[Leetcode] 82. 刪除排序連結串列重複元素 II java

 給定一個排序連結串列,刪除所有含有重複數字的節點,只保留原始連結串列中 沒有重複出現 的數字。 示例 1: 輸入: 1->2->3->3->4->4->5 輸出: 1->2->5 示例 

LeetCode 83 刪除排序連結串列重複元素 ---python

給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 示例 1: 輸入: 1->1->2 輸出: 1->2 示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->3 # D

Leetcode---83. 刪除排序連結串列重複元素

給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 示例 1: 輸入: 1->1->2 輸出: 1->2 示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->3 -----

LeetCode 83 —— 刪除排序連結串列重複元素

1. 題目 2. 解答 從前向後遍歷連結串列,如果下一個結點的值和當前結點的值相同,則刪除下一個結點,否則繼續向後遍歷。 /** * Definition for singly-linked list. * struct ListNode { * int val; * Lis

LeetCode 82 ——刪除排序連結串列重複元素 II

1. 題目 2. 解答 新建一個連結串列,並新增一個哨兵結點,從前向後開始遍歷連結串列。 如果下一個結點的值和當前結點的值相等,則迴圈向後遍歷直到找到一個和當前結點值不相等的結點; 反之,如果下一個結點的值和當前結點的值不相等,此值即為原始連結串列中

leetcode的python實現 刷題筆記83:刪除排序連結串列重複元素

給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 示例 1: 輸入: 1->1->2 輸出: 1->2 示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->3 class

LeetCode 簡單題】16-刪除排序連結串列重複元素

宣告: 今天是第16道題。給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・`

LeetCode-82. 刪除排序連結串列重複元素 II

題目 給定一個排序連結串列,刪除所有含有重複數字的節點,只保留原始連結串列中 沒有重複出現 的數字。 示例 1: 輸入: 1->2->3->3->4->4->5 輸出: 1->2->5 示例 2: 輸入: 1->

leetcode 83:刪除排序連結串列重複元素

ListNode *deleteDuplications(ListNode* head){ if(head==NULL)return head; ListNode *l1=new ListNode(0); ListNode *l2=l1; l1-&

leetcode 82:刪除排序連結串列重複元素 II

由於是排好序的佇列,所以處理起來相對簡單 ListNode* deleteDuplicates(ListNode* head) { ListNode*l2=new ListNode(0); if(head==NULL) return head; i

Leetcode:83. 刪除排序連結串列重複元素

給定一個排序連結串列,刪除所有重複的元素,使得每個元素只出現一次。 示例 1: 輸入: 1->1->2 輸出: 1->2 示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->3 您是否在真實的面

LeetCode】82. 刪除排序連結串列重複元素 II

給定一個排序連結串列,刪除所有含有重複數字的節點,只保留原始連結串列中 沒有重複出現 的數字。 基本思路是第一層迴圈,兩個指標分別指向當前元素和它的前繼,目的是如果有重複,需要刪除當前元素,然後直到當前元素為空 第二層迴圈,兩個指標分別指向當前元素的下一個元素和它的前繼,