leetcode 第83题 Remove Duplicates from Sorted List

来源:互联网 发布:sqlalchemy sql注入 编辑:程序博客网 时间:2024/05/16 11:52

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.

思路:定义两个指针,p = head, q = head->next,若p->val == q->val,则指针q一直向后遍历,否则p->next = q ,重复上述操作,直至遍历到链表结尾。

C++代码实现:

/** * 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) {        ListNode *p = head;        while(p != NULL){            ListNode *q = p->next;            while(q != NULL && p->val == q->val){                q = q->next;            }            p->next = q;            p = p->next;        }        return head;    }};
0 0
原创粉丝点击