思路:定义两个指针cur和p来逐个遍历链表,cur元素依次和p比较,直到p为NULL,cur向后移动一个。
struct listnode* delete_double_node(struct listnode* H) { if(H==NULL) return NULL; //判断是否需要遍历 struct listnode* cur=H; while(cur) { struct listnode* p=cur; while(p->next) { if(p->next->data==cur->data) { p->next=p->next->next; }else { p=p->next; } cur=cur->next; } } return H; }