从链表中释放和删除重复项?


Innate Mind
2025-01-04 08:08:49 (1月前)
  1. 我的函数remove_duplicates应该摆脱重复


数据
</跨度>
链表中的值。但是,当它到达链表中的某个点时,例如,如果链表是L = = {10,10,20,30,30,30,40,50},则输出为L = {10,20, 30,(一些随机int值,如23687328),50}当它应该是L = {10,20,30,40,50}。另外,我正在检查

泄漏
</跨度>
而Valgrind告诉我,我正在某处泄漏,但我

2 条回复
  1. 0# 张三岁 | 2019-08-31 10-32




    1. void remove_duplicates(node head)
      {
      node
      temp;
      while (head != NULL && head->next != NULL)
      {
      if (head->data == head->next->data)
      {
      temp = head->next;
      head->next = head->next->next;
      free(temp);
      }
      else
      head = head->next;
      }
      }

    2. </code>


    每次删除节点或移动到下一个节点时,都应该检查head-next是否为NULL。


登录 后才能参与评论