リストをトラバースし、リンクされたリストの構造体の値を出力するメソッドを含むリンクされたリストがあります。
void testLinkedList(LinkedList* list)
{
int count = 1;
LinkedListNode* current = list->head;
while (current != NULL)
{
printf("%d: Label is is %d\n", count, current->data->label);
current = current->next;
count++;
}
}
ループで何か間違ったことをしましたか? 最後のノードに到達すると終了するはずですが、許可されている限り、ループしてファントム番号を出力し続けます。
編集:これは、リンクされたリストに送信するために使用するinsertlast()関数です:
void insertLast(LinkedList* list, TinCan* newData)
{
int ii = 1;
LinkedListNode* newNode = (LinkedListNode*)malloc(sizeof(LinkedListNode));
newNode->data = newData;
//check if queue empty
if(list->head == NULL)
{
list->head = newNode;
newNode->next=NULL;
}
else
{
LinkedListNode* current = list->head;
while (current->next != NULL)
{
current = current->next;
}
current->next = newNode;
printf("%d", ii);
ii++;
}
}