Is this what you are looking for?
In[1]:= tree = {1, {2}, {{3, 4}}, {{{5, 6}, {7}}}};
flat[v_] := If[ListQ[v], Flatten[v], {v}];
verts = Map[{flat[First[#]], flat[Last[#]]} &, Partition[tree, 2, 1]];
edgelist = Flatten[Map[Outer[DirectedEdge, Sequence @@ #] &, verts]]
Out[3]= {1 \[DirectedEdge] 2, 2 \[DirectedEdge] 3, 2 \[DirectedEdge] 4, 3 \[DirectedEdge] 5,
3 \[DirectedEdge] 6, 3 \[DirectedEdge] 7, 4 \[DirectedEdge] 5, 4 \[DirectedEdge] 6, 4 \[DirectedEdge] 7}
With a little bit of concentration and time it should be possible to simplify that even more.