even->next = temp->next; ------> 1
even = temp->next; ------> 2
Is this statement correct? In (1) temp->next value gets assigned to even->next, it means the data is lost from temp->next. So, we can put even = temp->next again.