标题:删除排序链表中的重复元素
原题链接:删除排序链表中的重复元素
本题可以用来熟悉链表的操作,用两个指针来表示一前一后,每次判断后面的节点数值域是否与前面的节点相同,相同则跳过。
/**
* 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) return head;
ListNode* p = head;
ListNode* q = head->next;
while(q!=NULL)
{
if(p->val == q->val)
{
q = q->next;
p->next = q;
}
else
{
p = q;
q = q->next;
}
}
return head;
}
};
执行情况:
题外话:
你问我有哪些进步?我开始成为我自己的朋友。
——阿兰,德波顿