您的位置:首页 > 其它

LeetCode 082~083 Remove Duplicates from Sorted List

2015-04-21 21:20 267 查看

Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,

Given 1->1->2, return 1->2.

Given 1->1->2->3->3, return 1->2->3.
题目解析:去除重复的,只显示单个的内容
代码:
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode deleteDuplicates(ListNode head) {
		Set<Integer> set=new TreeSet<Integer>();
		while(head!=null){
			if(!set.contains(head.val)){
				set.add(head.val);
			}
			head=head.next;
		}
		ListNode result,temp;
		Iterator<Integer> it=set.iterator();
		if(it.hasNext()){
			result=new ListNode(it.next());
			temp=result;
			while(it.hasNext()){
				temp.next=new ListNode(it.next());
				temp=temp.next;
			}
			return result;
		}
		return null;

	}
}




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.
题目解析:在上一题的基础上,把重复的部分去掉,只显示没有重复的
代码:
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode deleteDuplicates(ListNode head) {
		Set<Integer> set=new TreeSet<Integer>();
		Set<Integer> set0=new LinkedHashSet<Integer>();
		while(head!=null){
			if(!set.contains(head.val)){
				set.add(head.val);
				set0.add(head.val);
			}else{
				set0.remove(head.val);
			}
			head=head.next;
		}
		ListNode result,temp;
		Iterator<Integer> it=set0.iterator();
		if(it.hasNext()){
			result=new ListNode(it.next());
			temp=result;
			while(it.hasNext()){
				temp.next=new ListNode(it.next());
				temp=temp.next;
			}
			return result;
		}
		return null;

	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: