zoukankan      html  css  js  c++  java
  • Remove Duplicates from Sorted List II

    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.

    Solution:

    首先用hashmap计算每个元素出现的次数,然后给list加个头指针,然后遍历链表,将次数多于1的都删掉。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) {
     7  *         val = x;
     8  *         next = null;
     9  *     }
    10  * }
    11  */
    12 public class Solution {
    13     public ListNode deleteDuplicates(ListNode head) {
    14         // Start typing your Java solution below
    15         // DO NOT write main() function
    16         HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
    17         ListNode cur = head;
    18         while(cur != null){
    19             if(map.containsKey(cur.val)){
    20                 map.put(cur.val,map.get(cur.val) + 1);
    21             }else{
    22                 map.put(cur.val,1);
    23             }
    24             cur = cur.next;
    25         }
    26         ListNode header = new ListNode(-1);
    27         header.next = head;
    28         cur = header;
    29         while(cur.next != null){
    30             if(map.get(cur.next.val) > 1){
    31                 cur.next = cur.next.next;
    32             }
    33             else{
    34                 cur = cur.next;
    35             }
    36         }
    37         return header.next;
    38     }
    39 }
  • 相关阅读:
    理解Restful 架构
    CLR 异步函数
    CLR 线程池
    CLR 线程基础
    CLR 序列化
    CLR 垃圾回收和应用程序集
    CLR的垃圾回收机制
    定制特性
    枚举和迭代器
    接口
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3342068.html
Copyright © 2011-2022 走看看