删除链表重复元素

输入: 1->2->3->3->4->4->5
输出: 1->2->5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode* h = NULL;
ListNode* pre = NULL;
ListNode* cur = head;
ListNode* r = NULL;
while (cur != NULL) {
if (juge(pre, cur) && juge(cur, cur->next)) {
if (h == NULL) {
h = new ListNode(cur->val);
r = h;
} else {
r->next = new ListNode(cur->val);
r = r->next;
}
}
pre = cur;
cur = cur->next;
}
return h;
}
bool juge(ListNode* node1, ListNode* node2) {
if (node1 == NULL || node2 == NULL || node1->val != node2->val) {
return true;
}
return false;
}
};