1.首先加上一个空的头结点,便于处理删除第一个结点的情况。 2.需要设一个pre指针跟踪工作结点及记录一路留下来的结点。 3.用2个指针p,q来比较结点值是否相同。 4.不同时,pre指向p,p指向q,q指向q->next。 5.相同时,继续看q的后面是否还有一样,直到找到不同的,或者到链尾。 a,若后面还有不同的,则更换pre,p,q指针的指向,继续比较。 b,若q值后面一直到链尾没有不同的,那么从p到q都要删掉,pre指空完结。 struct ListNode* deleteDuplicates(struct ListNod...