int getLength (node* head) { int length = 0; node* temp = head; while (temp != NULL) { length++; temp = temp -> next; } return length; } node* middleNode (node* head) { int length = getLength(head); int mid = (length/2) + 1; int cnt = 1; node* temp = head; while (cnt < mid) { temp = temp -> next; cnt++; } return temp; }