从链表中移除重复节点
Posted bot攻略
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从链表中移除重复节点相关的知识,希望对你有一定的参考价值。
java中有Hashtable函数,真的是方便到家没话说····
因为java中没有指针概念,所以只能通过对象来建立链表,建立链表代码如下
public class LinkedListNode
/*
* 建立链表,含有data 和指向下一节点的link
*/
public int data;
public LinkedListNode link;
/*
* 定义头结点,尾节点和创建新节点的空间
*/
LinkedListNode first,newNode,last;
int num;
public LinkedListNode buildList(int[] input)
if(input.length>0)
for(int i=0;i<input.length;i++)
newNode= new LinkedListNode();
newNode.data=input[i];
newNode.link=null;
if(first==null)
first=newNode;
last=newNode;
else
last.link=newNode;
last=newNode;
return first;
链表建立好后就可以通过哈希表来删除重复节点,
public class quchu
static int[]input=12,35,12,78,15,78,1;
public static void main(String[] args)
// TODO Auto-generated method stub
LinkedListNode list = new LinkedListNode();
list = list.buildList(input);
deleteDups(list);
while(list.link!=null)
System.out.println("list info is "+list.data);
list=list.link;
public static void deleteDups(LinkedListNode n)
Hashtable table = new Hashtable();
LinkedListNode previous = null;
while(n!=null)
if(table.containsKey(n.data)) previous.link = n.link;
else
table.put(n.data, true);
previous = n;
n = n.link;
但不知为何input[]数组下标为最后的数没有办法读取进链表,如果有知道的大神请指点下,谢谢
以上是关于从链表中移除重复节点的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 82 Remove Duplicates from Sorted List II(从已排序链表中移除重复元素)(Linked List)(*)