동적할당의 해제를 어디서 해주어야 할지 모르겠어요ㅠㅠ

부분집합을 단일연결리스트로 구하는 코드 중 메인함수입니다.
여기서 e,f,g,h노드를 동적할당했는데 제가 실수로 해제를 안해주었어요..
그런데 해제를 어디서 해주어야 할지 모르겠습니다...ㅠㅠ 도와주세요
int main()
{
ListNode *Ahouse, *Bhouse;
int c, d, A, B;
ListNode *a, *b, *e, *f;
ListNode *g, *h;
int i;
Ahouse=(ListNode*)malloc(sizeof(ListNode));
Bhouse=(ListNode*)malloc(sizeof(ListNode));
init(Ahouse);
init(Bhouse);
scanf("%d", &A);
if(A==0)
{
Ahouse->data=0;
}
for (i=0;i
{
scanf("%d", &c);
if(i==0)
{
e=(ListNode*)malloc(sizeof(ListNode));
e->data=c;
Ahouse=e;
}
else
{
g=(ListNode*)malloc(sizeof(ListNode));
g->data=c;
g->next=NULL;
e->next=g;
e=e->next;
}
}
scanf("%d", &B);
if(B==0)
{
Bhouse->data=0;
}
for (i=0;i
{
scanf("%d", &d);
if(i==0)
{
f=(ListNode*)malloc(sizeof(ListNode));
f->data=d;
Bhouse=f;
}
else
{
h=(ListNode*)malloc(sizeof(ListNode));
h->data=d;
h->next=NULL;
f->next=h;
f=f->next;
}
}
subset(Ahouse, Bhouse);
a=Ahouse;
while(a!=NULL)
{
b=a;
a=a->next;
free(b);
}
a=Bhouse;
while(a!=NULL)
{
b=a;
a=a->next;
free(b);
}
}
댓글 달기