I am practicing by writing a linked list that will take in numbers from the user in ascending order and tell you what the unique numbers you used are. I keep getting a segmentation fault after it inders my findUnique function and my while loop I have set up to print the list out before it enters isnt printing anything.
This is just practice with linked list so any help would be appreciated.

```
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct number{

    int num;
    struct number* next;
}Number;

Number *addterm(Number*, int);
void findUnique(Number*);

int main(void){

    Number *Number_List = NULL;
    int digit = 1;

    printf("Enter numbers in ascending order(enter 0 to stop): ");
    scanf("%d", &digit);

    while(digit != 0){
        addterm(Number_List, digit);
        printf("Enter numbers in ascending order(enter 0 to stop): ");
        scanf("%d", &digit);
    }
    printf("\ntest 1\n");

    Number *ptr = Number_List;
    while(ptr){
        printf("%d ", ptr -> num);  
        Number_List = ptr -> next;          
    }
    printf("\ntest 2\n");
    printf("\n");

    findUnique(Number_List);

    return 0;
}

Number *addterm(Number* list, int userIn){
    Number *newNum = (Number *) malloc ( sizeof (Number) );
    newNum->num = userIn;
    newNum->next = list;

    if(list == NULL){
        return newNum;
    }
    Number *ptr = list;

    while( ptr->next != NULL ){
        ptr = ptr->next;
    }
    ptr->next = newNum;
    return list;
}
void findUnique(Number* list){

    int print, temp;
    print = list->num;
    temp = print;
    printf("The unique numbers you entered are %d", temp);

    while( list ){
        print = list->num;
        if(print == temp){
            continue;
        }
        else{
        temp = print;
        printf(" %d", temp);
        }
        list = list -> next;
    }
    return;
}

```