```
struct node
{
    int     data;
    node*   pointerToNextNode;
};

```

Here `pointerToNextNode` is the type of `struct node`, and it is declared inside the struct.
How does the struct know the type of next pointer of its own type - when it itself hasn't been formed yet?

There is no keyword `extern` used. How does this work?