Files
aisd/Lab2/list/list.cpp
T

30 lines
629 B
C++

#include "list.h"
List *insert(List *head, int data) {
if (head == nullptr) {
List *node = new List();
node->data = data;
node->next = nullptr;
return node;
}
if (head->data > data) {
List *newHead = new List();
newHead->data = data;
newHead->next = head;
head = newHead;
} else {
List *tmp = head;
while (tmp->next != nullptr && tmp->data < data) {
tmp = head->next;
}
List *tail = new List();
tail->data = data;
// Set the pointer to the next, we don't know if its at the end or not
tail->next = tmp->next;
tmp->next = tail;
}
return head;
}