【每日leetcode】删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 ——————————————————————————————————————语言:c++
/** * 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 || head->next == NULL) { return head; } ListNode *newHead = new ListNode(0); ListNode *first = newHead; ListNode *current = head; while(current != NULL) { if(current->next != NULL && current->val == current->next->val) { while(current->next != NULL && current->val == current->next->val) { current = current->next; } } else { first->next = current; first = first->next; } current = current->next; } first->next = current; return newHead->next; } };
上一篇:
Java基础知识总结(2021版)