Согласен, не рекурсия... имел ввиду что next:list обращается к самой переменной list и пишет в нее же.
Вопрос в том, что функция строит дерево с нулевого элемента массива [10], но по моему пониманию должна строить по последнему [50], ведь перебор начинается с последнего элемента.