【删除链表中的重复元素】是否保留重复元素

  • ListNode deleteDuplicates(ListNode head) { if (!head || !head->next) return head; ListNode virNode = new ListNode(101, head), node = virNode; while (node && node->next) { if (node->val == node->next->val) { int num = node->val; while (node->next && node->next->val == num) node->next = node->next->next; } node = node->next; } return virNode->next; }- ListNode deleteDuplicates(ListNode head) { if (!head || !head->next) return head; //虚节点,常用的处理方式 ListNode virNode = new ListNode(0, head); ListNode node = virNode; int num = virNode->val; while (node->next && node->next->next) { //检查重复节点 if (node->next->val == node->next->next->val) { num = node->next->val; while (node->next && node->next->val == num) node->next = node->next->next; } else node = node->next; } return virNode->next; }