Programming/C C++
[DS] Insert a node at a specific position in a linked list
ElAsJay
2020. 9. 13. 18:05
728x90
link
/*
* For your reference:
*
* SinglyLinkedListNode {
* int data;
* SinglyLinkedListNode* next;
* };
*
*/
SinglyLinkedListNode* insertNodeAtPosition(SinglyLinkedListNode* head, int data, int position) {
SinglyLinkedListNode *node = malloc(sizeof(SinglyLinkedListNode));
node->data = data;
node->next=NULL;
SinglyLinkedListNode *tmp = head;
for(int i=0;i<position-1;i++){
tmp = tmp->next;
}
node->next = tmp->next;
tmp->next=node;
return head;
}
position의 위치에 data를 삽입해야하는 것이다. data라는 값을 노드의 data로 가지는 SinglyLinkedListNode 포인터 타입의 node를 생성해 저장한다. position의 위치에 원하는 값을 삽입하기 위해서는 총 position 만큼 head에서 움직여야 한다. 따라서, for문의 조건에 주의하여 작성해야한다.
SMALL