地址
给定一个排序链表, 删除所有重复的元素, 使得每个元素只出现一次.
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
由于是 排序链表 那么只要比较当前和下一个元素的值比较 决定删除与否
同样 还是注意边界问题
- code
- /**
- * 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){
- if(p->next!=NULL&& p->val == p->next->val){
- p->next = p->next->next;
- } else{
- p=p->next;
- }
- }
- return head;
- }
- };
来源: http://www.bubuko.com/infodetail-3302275.html