zoukankan      html  css  js  c++  java
  • 第82题:删除排序链表中的重复元素II

    一. 问题描述

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

    示例 1:

    输入: 1->2->3->3->4->4->5

    输出: 1->2->5

    示例 2:

    输入: 1->1->1->2->3

    输出: 2->3

    二. 解题思路

    本题思路:本题采用双指针的方法进行一次遍历得到答案。

    步骤一:设置一个头指针first,first.next=head,设置另一个指针second指向head。

    步骤二:判断second指针指向的数字与下一个是否相等,如果不等则添加到first指针后面,重复步骤二,如果相等进入步骤三。

    步骤三:将当前second指针指向的数设成标记数,second指针指向下一个数字,遍历链表(步骤四)。

    步骤四:当标记数等于second指针指向的数字,则继续进行遍历,跳过当前所有重复数字。跳过重复标记数后返回步骤二。

    三. 执行结果

    四.  执行用时 :1 ms, 在所有 java 提交中击败了99.29%的用户

    五.  内存消耗 :36.4 MB, 在所有 java 提交中击败了65.11%的用户

    六. Java代码

    class Solution {
        public ListNode deleteDuplicates(ListNode head) {
            
              ListNode first=new ListNode(0);
              first.next=head;
              ListNode result=first;
              ListNode second=head;
              
              if(head==null)
              {
                  return head;
              }
                        
              while(second!=null) {
                  if(second.next==null)
                  {
                      first.next=second;
                      break;
                  }
                  if(second.val!=second.next.val)
                  {
                      first.next=second;
                      first=second;
                      second=second.next;
                      continue;
                  }  
                  int data=second.val;
                  second=second.next;
                  while(second!=null&&data==second.val)
                  {
                      second=second.next;
                      if(second==null)
                      {
                          first.next=second;
                          break;
                      }
                     
                  }
                  
                  
              }
              
              return result.next;
        }
    }
  • 相关阅读:
    CMake 用法导览
    Irrlicht 1.8.4 + Win7 + VC2015 + x64 +OpenGL编译
    VirtualBox 5.1.14 获取VirtualBox COM对象错误
    CGAL Manual/tutorial_hello_world.html
    CGAL 介绍
    Open CASCADE 基础类(Foundation Classes)
    OpenCASCADE 基础
    Nginx 反向代理详解
    修改docker容器中的hosts文件
    Jmeter 设置连接oracle数据库
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11733206.html
Copyright © 2011-2022 走看看