Как построить бинарное дерево с помощью списка смежности?
Обходом естественно.
Я так понимаю, на входе у вас массив, содержащий списки соседей(индексы) для каждой вершины графа.
Берите любую вершину, у которой кол-во соседей меньше либо равно двум, и назначаете ее корнем.
Для любой вершины корнем левого поддерева будет первый сосед в списке (если есть), который не совпадает с родительским. Рекурсивно строите левое поддерево. 
Корнем правого поддерева будет второй сосед в списке (если есть), который не совпадает с родительским. 
Рекурсивно строите правое поддерево.
В итоге получите несортированное несбалансированное бинарное дерево