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) {If (Head = NULL | head. next = NULL) return head; listnode visited = head; while (visited! = NULL & visited. Next! = NULL) {If (visited. Val = visited. Next. Val) visited. Next = visited. Next. Next; else visited = visited. Next;} return head ;}}
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-> 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) {If (Head = NULL | head. next = NULL) return head; listnode pre = new listnode (0); pre. next = head; head = pre; while (pre. next! = NULL) {listnode cur = pre. Next; while (cur. Next! = NULL & cur. next. val = cur. val) cur = cur. next; If (pre. next = cur) {// don't find the duplicatepre = pre. next;} else {// remove the duplicate nodepre. next = cur. next;} return head. next ;}}
Leetcode solutions: remove duplicates from sorted list I & II