83. Remove Duplicates from Sorted List

来源:互联网 发布:网络平台招商合同 编辑:程序博客网 时间:2024/05/16 14:19

题目:Remove Duplicates from Sorted List

原题链接:https://leetcode.com/problems/remove-duplicates-from-sorted-list/
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.
给出一个已经排序好的单链表,删除里面重复的节点。

链表 1->1->2, return 1->2.
链表 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) return NULL;        ListNode* pre = head, *p = head->next;        if(!p) return head;        int temp1 = pre->val, temp2;        while(p) {            temp2 = p->val;            if(temp1 == temp2) {                ListNode* t = p;                p = p->next;                pre->next = p;                free(t);            }else{                temp1 = temp2;                pre = p;                p = p->next;            }        }        return head;    }};
0 0
原创粉丝点击