zoukankan      html  css  js  c++  java
  • 链表例题1:删除链表中的重复结点

    解题思路:

    1.创建一个结点类

    2.创建一个删除方法

    3.使用快慢指针的思想(主要的部分)

    代码如下:

     1 public class RemoveRepeation {
     2 
     3     public static void main(String[] args) {
     4         int data[]= {1,1,1,1,1,2,2,2,2,2,3,3,3,4,4,5,5,5,6,6,5,5,1,1,3,2,5,3,10,10};
     5         Node head=new Node(null); //创建一个头结点哑元
     6         //将元素通过链表串进来
     7         Node p=head;
     8         for(int i=0;i<data.length;i++)
     9         {
    10             p.next=new Node(data[i]);
    11             p=p.next;
    12         }
    13         
    14         //删除方法的调用
    15         remove(head);
    16         
    17         //删除后的结果输出
    18         Node p1=head.next;
    19         while(p1!=null)
    20         {
    21             System.out.print(p1.value+"  ");
    22             p1=p1.next;
    23         }
    24     }
    25     
    26     
    27     private static void remove(Node node) 
    28     {
    29         Node p1=node.next;   //当前要比较的结点
    30         Node pre=node.next; //慢指针
    31         Node p2=pre.next;  //快指针
    32         while(p2!=null)
    33         {
    34             Object temp=p1.value; //存储要比较值从前往后一步一步走
    35             
    36             //把要比较的值与它后面的值一一比较
    37             while(p2!=null)
    38             {
    39                 if(temp==p2.value)
    40                 {
    41                     //慢指针不动,快指针移动
    42                     pre.next=p2.next; 
    43                     p2=pre.next;
    44                 }
    45                 else
    46                 {
    47                     //快,慢指针都向前移动一下
    48                     pre=p2;
    49                     p2=p2.next;
    50                 }
    51             }
    52             
    53             //重新再定义快,慢指针
    54             if(p1.next!=null)
    55             {
    56             p1=p1.next;
    57             pre=p1;
    58             p2=p1.next;
    59             }
    60         }
    61     }
    62     
    63     //结点类
    64     private static class Node
    65     {
    66         Node next;
    67         Object value;
    68         
    69         public Node(Object value)
    70         {
    71             this.value=value;
    72         }
    73     }
    74     
    75 
    76 }

    结果:

  • 相关阅读:
    [bzoj5466] [loj#2955] [NOIP2018] 保卫王国
    [洛谷P4719] 动态DP模板
    [bzoj4869] [loj#2142] [Shoi2017] 相逢是问候
    《组合数学》学习笔记 之 二项式系数
    多项式模板合集
    THUWC2020 自闭记
    [bzoj5020] [THUWC 2017] 在美妙的数学王国中畅游
    [bzoj3676] [Apio2014] 回文串
    【模板整理】Tarjan
    考前一些东西
  • 原文地址:https://www.cnblogs.com/LgxBoKeYuan/p/10202040.html
Copyright © 2011-2022 走看看