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.

    [解题思路]

    在头结点之前添加safeguard,防止处理一开始就是连续节点的情况

    当发现连续节点时,line 29删除重复节点,line 35-39处理剩余的一个重复节点

    需要注意的一个test case:[1,1,2,2],之前line 40-41 是在while语句之后,不能处理这种情况

    现在当出现连续节点时,pre,cur指针不移动,继续检查删除后的情况

     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         if(head == null){
    17             return head;
    18         }
    19         
    20         ListNode fake = new ListNode(Integer.MIN_VALUE);
    21         fake.next = head;
    22         head = fake;
    23         
    24         ListNode pre = head, cur = head.next;
    25         while(cur != null){
    26             boolean flag = false;
    27             while(cur != null && cur.next != null){
    28                 if(cur.val == cur.next.val){
    29                     cur.next = cur.next.next;
    30                     flag = true;
    31                 } else {
    32                     break;
    33                 }
    34             }
    35             if(flag){
    36                pre.next = cur.next; 
    37                cur = pre.next;
    38                continue;
    39             }
    40             pre = cur;
    41             cur = cur.next;
    42         }
    43         return head.next;
    44     }
    45 }
  • 相关阅读:
    LoadRunner
    LoadRunner
    LoadRunner
    LoadRunner
    Python
    hadoop for .Net
    MVC初学
    MVC初学
    android学习---面试一
    android学习---progressbar和ratingbar
  • 原文地址:https://www.cnblogs.com/feiling/p/3259474.html
Copyright © 2011-2022 走看看