Как реализовать дерево на основе связного списка?
У каждого элемента списка может быть либо один последующий, либо ноль. Вероятно, вам нужно на указателях реализовать.

Если уж прямо нужно на списках, то можно нумеровать элементы списка и в каждом хранить потомков.
Как-то так:
список:


[2, 3]
[4, 5]
[]

Дерево на основе связного списка это вообще первое что приходит в голову, когда думаешь, как реализовывать дерево. Правда это не обычный последовательный связный список, а иерархический.