wordpress免费建站吗,wordpress教程之,wordpress自定义分类目录,家居装修设计平台82.删除排序链表中的重复元素
主要问题是没有头节点#xff0c;以及要删除所有的相等元素#xff0c;不是留下一个 那么首先要建立一个头节点#xff0c;指向head 而且指针要始终指向要删除的节点的前一个节点
ListNode* pre new ListNode(0,head);在搜索的过程中#x…82.删除排序链表中的重复元素
主要问题是没有头节点以及要删除所有的相等元素不是留下一个 那么首先要建立一个头节点指向head 而且指针要始终指向要删除的节点的前一个节点
ListNode* pre new ListNode(0,head);在搜索的过程中如果遇到两个相等的节点aba-next-b那么保存它们的值x然后把a删除 也就是让a的前一个节点p-nextb 因为p-nexta a-nextb 所以p-next-nextb; 所以可以直接写作 p-nextp-next-next 然后继续往后检查后续的节点有没有值等于x的 即p-next-valx 若有继续让p-nextp-next-next 因为是有序链表所以直到链表内p的下一个节点指向的值不等于x就不存在值为x的节点了 当两个相邻节点不相等p往下指
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* deleteDuplicates(ListNode* head) {ListNode* prenew ListNode(0,head);ListNode* ppre;while(p-nextp-next-next!nullptr){if(p-next-valp-next-next-val){int xp-next-val;while(p-nextp-next-valx){p-nextp-next-next;}}else{pp-next;}}return pre-next;}
};