Program quits completely at
while ((temp->x < new_node->x)&&(temp != NULL))
but it runs when written as
while((temp!=NULL) &&(temp->x < new_node->x))
Here is my code.
Node *insert(Node *head)
{
Node *new_node = (Node *)malloc(sizeof(Node));
new_node->next = NULL;
printf("\nEnter x: ");
scanf("%d", &new_node->x);
if (head == NULL)
return new_node;
else
{
Node *prev = NULL, *temp = head;
while ((temp->x < new_node->x)&&(temp != NULL)) // but, ((temp!=NULL) &&(temp->x < new_node->x)) runs
{
prev = temp;
temp = temp->next;
}
new_node->next = temp;
if (prev == NULL) // Node needs to insert at beginning to maintain the sorting of Linked List
return new_node;
prev->next = new_node;
return head;
}
}