[leetcode] 83. Remove Duplicates from Sorted List

来源:互联网 发布:手机黄金探测器软件 编辑:程序博客网 时间:2024/04/29 23:21

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.

这道题是删除已排序链表中重复值的节点,题目难度为Easy。

这样的题目一般需要记录下前一节点(pre),如果当前节点(cur)值和前一节点值相等,删除当前节点(pre->next = cur->next),否则更新前一节点为当前节点(pre = cur),这样遍历链表即可删除所有重复值的节点。具体代码:

class Solution {public:    ListNode *deleteDuplicates(ListNode *head) {        if(!head) return NULL;        ListNode* cur = head->next;        ListNode* pre = head;        while(cur) {            if(cur->val == pre->val) pre->next = cur->next;            else pre = cur;            cur = cur->next;        }        return head;    }};

0 0