Что такое обобщение в c++?
Верно думаете.
Кажется, тут термин "обобщенный" не относится к языку. Просто по примеру сделать такой же список, но для любых данных.
Например, вот такой элемент списка:struct List
{
    struct List * next;
    struct List * prev;
    void * data;
    int dataType;
};
способен хранить данные любого типа (в зависимости от dataType, указатель data будет интерпретироваться по-разному)