题解 | #删除有序链表中重复的元素-I#
删除有序链表中重复的元素-I
https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ //遍历一次链表 将值存于vector中 不存重复值同时尾插到新链表 ListNode* deleteDuplicates(ListNode* head) { if(head == nullptr) return nullptr; vector<int> v1; auto newlist = head; //伪头节点 auto retlist = new ListNode(-1); auto cur = retlist; ListNode* lastnode; while(newlist) { //vector中没有该数则存入 if(find(v1.begin(),v1.end(),newlist->val) == v1.end()) { v1.push_back(newlist->val); retlist->next = newlist; //记录每一次链接到新链表的结点 方便最后置空他的next lastnode = newlist; retlist = retlist->next; } newlist = newlist->next; } lastnode->next = nullptr; return cur->next; // write code here } };#c++笔记#