当前位置: 代码迷 >> 综合 >> 链表--从有序链表中删除重复元素
  详细解决方案

链表--从有序链表中删除重复元素

热度:45   发布时间:2024-01-20 03:11:09.0

从有序链表中删除重复元素

给定一个有序链表,删除所有重复的元素,使链表中的每个元素只出现一次。例如,给定链表1->1->2,返回1->2.  给定链表1->1->2->3->3,返回1->2->3.

ListNode *removeDuplicate(ListNode *head)
{//只有一个元素或者为空,直接返回头结点if(head == NULL || head->next == NULL)return head;//node临时变量用于遍历整个链表ListNode *node = head;while(node->next != NULL){//如果本结点的值和下一个节点的值相同,则删除下一个节点if(node->val == node->next->val){ListNode *tmp = node->next;node->next = node->next->next;delete tmp;//注意:此处删除下一个节点后,不需要再次移动node,因为这里还要判断本结点和新的node->next的值}//不同,则向后移动nodeelse{node = node->next;}}return head;
}

 

  相关解决方案