leetcode 83. 删除排序链表中的重复元素

2020-10-13  本文已影响0人  Source_Chang

leetcode

C++:

struct ListNode {
public:
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};


class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        
        ListNode *previousNode = NULL;
        ListNode *currentNode = head;
        while ( currentNode ) {
            
            if ( !previousNode ) {
                
                previousNode = currentNode;
                currentNode = currentNode -> next;
                
            } else if ( previousNode -> val != currentNode -> val ) {
                
                previousNode = currentNode;
                currentNode = currentNode -> next;
                
            } else if ( previousNode -> val == currentNode -> val ) {
                
                ListNode *nextNode = currentNode -> next;
                delete currentNode;
                currentNode = nextNode;
                previousNode -> next = currentNode;
            }
        }

        return head;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读