/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ struct ListNode* deleteDuplicates(struct ListNode* head ) { //思路 //链表已经有序,依次遍历删除重复结点即可 struct ListNode *headTmpPre = NULL; struct ListNode *headTmp = NULL; if (head == NULL || head->next == NULL) { return head; } headTmpPre = head; headTmp = head->next; while (headTmp) { if (headTmp->val == headTmpPre->val) { // 当前结点与上一结点值相同,进行删除 headTmpPre->next = headTmp->next; } else { headTmpPre = headTmpPre->next; } headTmp = headTmpPre->next; } return head; }