Yes, you can have an arbitrary number of levels of pointers.
int x = 5;
int *a = &x;
int **b = &a;
int ***c = &b;
printf("%d %d %d %d\n", x, *a, **b, ***c);
A pointer to a pointer to a pointer is not a linked list. A linked list is a structure type that contains a pointer to its own type:
struct list
{
int data;
struct list *next;
};
So that you can chain them together in a list:
struct list three = { 3, NULL };
struct list two = { 2, &three };
struct list one = { 1, &two };
struct list head = { 0, &one };
And iterate over them:
for (struct list *node = &head; node->next; node = node->next)
{
printf("%d\n", node->data);
}