Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given1->1->2
, return 1->2
.Given 1->1->2->3->3
, return 1->2->3
.
遍历一次链表,出现与当前尾节点相同的节点,跳过即可。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *deleteDuplicates(ListNode *head) { if(head == NULL) return head; ListNode* tail = head; ListNode* cur = head; while(cur != NULL) { if(cur->val != tail->val) { tail->next = cur; tail = tail->next; } cur = cur->next; } tail->next = NULL; return head; }};