首页 > 学院 > 开发设计 > 正文

82. Remove Duplicates from Sorted List II

2019-11-08 01:33:01
字体:
来源:转载
供稿:网友
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.For example,Given 1->2->3->3->4->4->5, return 1->2->5.Given 1->1->1->2->3, return 2->3.

同样使用二级指针,比我之前在牛客网上做这道题的方法简便了好多。这又是一大进步。

class Solution {public: ListNode* deleteDuplicates(ListNode* head) { ListNode** pp = &head; bool deleted = false; while((*pp) != NULL){ if((*pp)->next == NULL){ if(deleted) *pp = NULL; break; } if((*pp)->val == (*pp)->next->val){ ListNode* tmp = (*pp)->next; (*pp)->next = tmp->next; delete tmp; deleted = true; } else if(deleted){ (*pp) = (*pp)->next; //删除重复元素的第一个 deleted = false; } else{ pp = &((*pp)->next); } } return head; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表