[LeetCode] Remove Duplicates from Sorted List

来源:互联网 发布:gcp网络培训 编辑:程序博客网 时间:2024/04/30 11:15

题目:

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.

解答:

/** * 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 *cur = head;        while(cur != NULL && cur -> next != NULL) {            if(cur -> val == cur -> next -> val) {                cur -> next = cur -> next -> next;            }            else {                cur = cur -> next;            }        }                return head;    }};

中规中矩的一道题,唯一能算得上难点的就是cur的移动规则,如果判断相同,cur不移动,只有判断不同时,cur向前移动一步

0 0