面试题 02.01. 移除重复节点 - 力扣(LeetCode)

链表指针p和curr
与head指向同一块空间;
p和head来比较相同的值,遇到一样的值、就改变这个空间里面struct的成员变量next指针指向的地址,跳向next的next再比较;
注意:不是开辟了三块空间,指针只是存了地址,指向同一块空间
class Solution {
public:
    ListNode* removeDuplicateNodes(ListNode* head) {
        ListNode* curr = head;
        if(curr == NULL)
        {
            return NULL;
        }
        while(curr)
        {
            ListNode* p = curr;
            while(p->next)
            {
                if(p->next->val == curr->val)
                {
                    p->next = p->next->next;
                }
                else
                {
                    p = p->next;
                }
            }
            curr = curr->next;
        }
        return head;
    }
};


















