LeetCode做题笔记 - 83 - 删除有序链表中的重复元素(简单)
题目:删除有序链表中的重复元素(难度:简单)
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
思路
应该属于链表的基本操作。因为链表是有序的,那么只需从头遍历,跳过相同的元素即可。
代码
/**
* 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;
if (p == NULL)
{
return head;
}
while (p->next != NULL)
{
if (p->val == p->next->val) // 关键步骤:跳过数值相同的节点
{
p->next = p->next->next;
}
else
{
p = p->next;
}
}
return head;
}
};

浙公网安备 33010602011771号