zoukankan      html  css  js  c++  java
  • 【leetcode刷题笔记】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.


    题解:类似Remove Duplicates from Sorted List, 不过这次是如果有重复的数,那么把列表中所有的这个数都删除。

    主要考察链表操作,建立一个新的链表头newNode,它的next指针指向head,head作为游标,初始指向newNode,然后当发现重复的时候,就可以利用一个while循环把重复的元素全部删除了,因为head总是指向要删除的节点前面一个节点。

    代码如下:

     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         if(head == null || head.next == null)
    15             return head;
    16         
    17         ListNode newNode = new ListNode(0);
    18         newNode.next = head;
    19         head = newNode;
    20         
    21         while(head.next != null && head.next.next != null){
    22             if(head.next.val == head.next.next.val){
    23                 int val = head.next.val;
    24                 while(head.next != null && head.next.val == val){
    25                     head.next = head.next.next;
    26                 }
    27             }
    28             else
    29                 head = head.next;
    30         }
    31         
    32         return newNode.next;
    33     }
    34 }
  • 相关阅读:
    Pika的设计及实现
    高性能网络编程
    C语言的结构体
    消息队列库——ZeroMQ
    Diffie-Hellman密钥交换算法
    mysql-proxy 读写分离
    位运算
    分布式学习之一:事务
    Redis Cluster
    SpringBoot整合ActiveMQ,看这篇就够了
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3862254.html
Copyright © 2011-2022 走看看