#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>


typedef struct ListNode {

int data;

struct ListNode *link;

} ListNode;



void insert_node(ListNode **phead, ListNode *p, ListNode *new_node)

{

if (*phead == NULL) {

new_node->link = NULL;

*phead = new_node;

}

else if (p == NULL) {

new_node->link = *phead;

*phead = new_node;

}

else {

new_node->link = p->link;

p->link = new_node;

}

}


ListNode *create_node(int data, ListNode *link)

{

ListNode *new_node;

new_node = (ListNode*)malloc(sizeof(ListNode));

new_node->>

new_node->link = link;

return(new_node);


}


ListNode *merge(ListNode *head1, ListNode *head2)

{

ListNode *p3 = (ListNode*)malloc(sizeof(ListNode));

while (head1 != NULL && head2 != NULL) {

if (head1->data < head2->data) {

p3->>

if (head1->link!= NULL) {

p3 = p3->link;

head1 = head1->link;

}

else p3->link = head2;

}

else {

p3->>

if (head2->link != NULL) {

p3 = p3->link;

head2 = head2->link;

}

else p3->link = head1;

}

}

return p3;

}


void display(ListNode *head)

{

ListNode *p = head;

while (p != NULL) {

printf("%d->", p->data);

p = p->link;

}

printf("\n");

}


int main() {

ListNode *list1 = NULL;

insert_node(&list1, NULL, create_node(10, NULL));

insert_node(&list1, NULL, create_node(20, NULL));

insert_node(&list1, NULL, create_node(30, NULL));

display(list1);


ListNode *list2 = NULL;

insert_node(&list2, NULL, create_node(15, NULL));

insert_node(&list2, NULL, create_node(25, NULL));

insert_node(&list2, NULL, create_node(35, NULL));

display(list2);

display(merge(list1, list2));

}


display(merge(list1, list2)); 이 부분이 출력되지 않고 종료되네요.