将相同的元素从2个升序排序的链表复制到一个新的链表中

时间:2019-05-10 16:09:01

标签: c

我正在编写一个函数,该函数返回一个新列表,其中两个两个给定的升序排序列表中都包含元素,而没有任何值重复。 这段代码一直在给我LeakSanitazire: detected memory leaks,但我无法弄清楚我缺少什么。

intersezione.c

#include "intersezione.h"
#include <stdlib.h>

tlista intersezione(tlista lista1, tlista lista2){
  tlista head = NULL;
  tlista curr = NULL;
  tlista tail_lista2;
  while(lista1 != NULL){
    tail_lista2 = lista2;
    while(tail_lista2 != NULL){
      if(lista1->valore == tail_lista2->valore){
        if(head == NULL){
          head = (tlista)malloc(sizeof(struct cella));
          head->valore = lista1->valore;
          head->next = NULL;
          curr = head;
        } else if(lista1->valore != curr->valore){
          curr->next = (tlista)malloc(sizeof(struct cella));
          curr = curr->next;
          curr->valore = lista1->valore;
          curr->next = NULL;
        }   
      }
      tail_lista2 = tail_lista2->next;
    }
    lista1 = lista1->next;
  }
  return head;
}

Here,您可以找到完整的代码。

0 个答案:

没有答案