leetcode 原题链接:https://leetcode.com/problems/remove-duplicates-from-sorted-list/
ps: 这也是前两天腾讯电面我的一道题,虽然思路对了,但是白板写的程序,把指针箭头引用写成(.)应用了,也不知道还有没有二面,/(ㄒoㄒ)/~~
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
.
实现代码:
<span style="font-size:14px;">#include <iostream>
using namespace std;
//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 NULL;
ListNode *p = head;
ListNode *temp = p->next;
while (p->next != NULL)
{
if (p->val == temp->val)
{
ListNode *tp = temp;
p->next = temp->next;
temp = p->next;
delete tp;
tp = NULL;
} else
{
p = p->next;
temp = p->next;
}
}
return head;
}
};</span>