I guess I just don't understand at all as to why this loops infinitely. The intentions of this code is for temp to become the node "in front of the head node". How would I fix this?Code:struct node{ struct node* back; int data; struct node* next; }; struct node *head; struct node *tail; struct node *temp; void main{ head = (struct node*)malloc(sizeof(struct node)); tail = (struct node*)malloc(sizeof(struct node)); tail->back = head; head->next = tail; temp = tail; while(temp->back != head){ temp = temp->back; } }