#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));
}
중간에 보이는 ->>은 뭐임
new_node에 data 값 넣는 거요.