首页 » 编程之美 » 正文

[leetcode_82]Remove Duplicates from Sorted List II

删除单向链表中所有有重复值的节点。

class Solution {
public:
    ListNode *deleteDuplicates(ListNode *head) {
        while(head != NULL && head->next != NULL && head->val == head->next->val) {
            while(head != NULL && head->next != NULL && head->val == head->next->val) {
                head = head->next;
            }
            if(head != NULL) {
                head = head->next;
            }
        }
        if(head == NULL || head->next == NULL)return head;
        ListNode * now = head->next;
        ListNode * node = head;
        while(now != NULL && now ->next != NULL){
            while(now != NULL && now->next != NULL && now->val == now->next->val) {
                while(now != NULL && now->next != NULL && now->val == now->next->val) {
                    now = now->next;
                }
                if(now != NULL) {
                    now = now->next;
                }
            }
            node->next = now;
            node = node->next;
            if(node == NULL)break;
            now = node->next;
        }
        return head;
    }
};

发表评论