I believe I am getting confused with the pointers in my program. : Below I created a function that enters a while loop. In the while loop an if statement is called to traverse the list and check the numbers to see which one is the largest and which one is the smallest. When I run the program only one `printf()` is called, and prints the same `printf()` more than once. It seems to pick two numbers and print them under the same `printf()` function.I know that `firstNumber = firstNumber->next;` is supposed to traverse the list. Isn't `secondNumber = secondNumber->next->next;` supposed to point to the next number in the list?    

    typedef struct A_NewNumber {
    struct A_NewNumber *next;
    double newNum;
    } NewNumber;

    void NumberSize(NewNumber *start){

	NewNumber *firstNumber = start;
	NewNumber *secondNumber = start;
    
    if(start != NULL){
		while (secondNumber != NULL && secondNumber->next != NULL){
			secondNumber = secondNumber->next->next;
			firstNumber = firstNumber->next;
			if(secondNumber > firstNumber){
				printf("The biggest number is:%lf \n",secondNumber->newNum);
			}else{
				printf("The smallest number is:%lf \n",firstNumber->newNum);
			}
			firstNumber = firstNumber->next;
		 }
	  }
    }
