#include <stdio.h>
#include <stdlib.h>
typedef int element;
typedef struct {
element data;
ListNode* link;
}ListNode;
ListNode* insert_first(ListNode* head, element data) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = data;
if (head == NULL) {
head = node;
node->link = head;
}
else {
node->link = head->link; //새로운 노드의 링크가 첫번째 노드를 가리키게함
head->link = node;
}
return head;
}
ListNode* insert_last(ListNode* head, element data) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = data;
if (head == NULL) {
head = node;
node->link = head;
}
else {
node->link = head->link; //끝에 추가된 노드의 링크를 첫번째 노드를 가리키게함
head->link = node; //추가된 노드 이전 노드의 링크는 추가된 노드를 가리키게함
head = node; //head의 위치만 새로운 노드로 바꾸어줌 ->새로운 노드는 마지막 노드가 됨
}
return head;
}