A linked list simply is a pointer to the next element in the list. You don’t need to use a TLinkedList to do that. Instead, with MyAwesomeType, you can just store another pointer to the next MyAwesomeType
struct MyAwesomeType
{
int MyAwesomeData;
UPROPERTY()
MyAwesomeType* Next;
}
And then to access the linked list, you just get the head of the linked list and do traversal or whatever you want to do with it.
As for why linked list is faster than arrays, arrays is better for random access on any index of the array. Linked list is better if you just want to append to the list, or just delete the 1st/last elem from the list most times (instead of deleting/inserting in the middle). This is because you always cache the head or tail of the list.