本文共 851 字,大约阅读时间需要 2 分钟。
难度简单
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:输入: 1->1->2
输出: 1->2 示例 2:输入: 1->1->2->3->3
输出: 1->2->3(1)通过两个指针判断相邻的两个节点值是否相同 (2)如果存在重复则进行去重
class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if (head == NULL || head->next == NULL) return head; ListNode* ans = new ListNode(-1); ans->next = head; ListNode* cur = ans->next; ListNode* pre = ans; while (cur != NULL && cur->next != NULL) { int left = cur->val; int right = cur->next->val; //若两个节点相同,删除重复元素 if (left == right) { cur->next = cur->next->next; } //两个节点值不同 else{ pre = pre->next; cur = cur->next; } } return ans->next; }};
转载地址:http://kvowi.baihongyu.com/