C语言:单链表的下标访问

单链表的下标访问)请编写程序输出单链表中对应于下标i到下标j之间的数据。
【输入】第一行整数n(1<=n)
第二行n个整数
第三行i的值 j的值(i和j为合法下标,j >= i)
【输出】下标i到j之间的数值
例如:
【输入】
5
3 6 9 10 1
0 2
【输出】
3 6 9
附上已经创建好的链表代码,请帮忙看看怎么样输出下标的值

#include<stdio.h>
#include<stdlib.h>
typedef struct number{
    int value;
    struct number *next;
}num;
num* add(num *head,int n);
int main()
{
    int n;
    scanf("%d",&n);
    num *head=NULL;
    head =add(*head,n);

}
num* add(num head,int n)
{
        for(int i=0;i<n;i++){
        num *p=(num *)malloc(sizeof(num));
        scanf("%d",&p->value);
        p->next=NULL;
        num *end=head;
        if(head==NULL){
            head=p;
        }
        else{
            while(end->next){
                end=end->next;
            }
            end->next=p;
        }
    }
    return head;
}

typedef struct number{
int value;
int index;
struct number *next;
}num;
创建的时候赋值