remove-duplicates-from-sorted-list

来源:互联网 发布:阿里云深圳机房ip地址 编辑:程序博客网 时间:2024/06/03 22:50

题目描述

Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given1->1->2, return1->2.
Given1->1->2->3->3, return1->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==NULL||head->next==NULL)            return head;        ListNode* pre=head;        ListNode* cur=head->next;        int flag=1;        while(cur!=NULL)            {            if(pre->val==cur->val){  //相同指向后一个元素                if(pre->next!=NULL)                    delete pre->next; //释放删除节点的内存                pre->next=cur->next;                cur=cur->next;            }            else{                if(flag){           //用flag记录下头部元素                    head=pre;flag=0;                }                pre=cur;                cur=cur->next;            }               }        return head;            }};
0 0
原创粉丝点击