Ignasi suggested that I might be able to 'improve' the Forest solution.
I have to say, that this code can scarcely be accused of being simpler. It is, however, more automated. Forest itself constructs all aspects of the tree given two pieces of information: the number of levels below the root and the number of branches from each non-terminal node.
It is also possible, though not required, to specify the factor used in the denominators. If this is not given, the number of branches plus 1 will be used.
By default, 2 levels and 3 branches are used, as in Ignasi's example.
To use the style, add rstyle to the tree's preamble.
rbranches=<integer> specifies the number of branches from each non-terminal node;
rlevels=<integer> specifies the number of levels below the root.
Should you need to override the factor used in the denominators, use
Hence, we can draw 3 trees as follows.
First, we test the defaults to match Ignasi's example. I've added a little more spacing as I initially had no idea there were addition signs in the bottom level.
\begin{forest}
rtree,
[]
\end{forest}

Now let's try a tree with the default number of branches but an additional level, but we'll make everything explicit here.
\begin{forest}
rtree,
rbranches'=3,
rlevels'=3,
[]
\end{forest}

Finally, let's reduce the branching to 2 but increase the levels to 5.
\begin{forest}
rtree,
rbranches'=2,
rlevels'=5,
[]
\end{forest}

Complete code:
% addaswyd o côd Ignasi: http://tex.stackexchange.com/a/333886/
\documentclass[border=10pt,tikz]{standalone}
\usepackage{forest}
\forestset{
declare count register=rlevels,
declare count register=rbranches,
declare count register=rdenom,
declare count register=rwait,
rlevels'=2,
rbranches'=3,
rdenom'=0,
rwait'=1,
define long step={rup}{}{fake=root,first leaf,ancestors},
rtree/.style={
delay={
repeat/.wrap pgfmath arg={
{##1}{
rwait'+=2,
delay n/.wrap pgfmath arg={
{########1}{
where n children=0{
repeat/.wrap pgfmath arg={
{################1}{
append={[]}
}
}{rbranches},
}{},
}
}{rwait},
}
}{rlevels},
},
before typesetting nodes={
if={(rdenom)==0}{
rdenom/.register=rbranches,
rdenom'+=1,
}{},
for tree={
circle,
draw,
math content,
s sep+=5pt,
},
where level=0{
content=n,
}{
if level=1{
content=\frac{n}{\foresteregister{rdenom}},
}{
content/.wrap pgfmath arg={\frac{n}{\foresteregister{rdenom}^{##1}}}{level()},
},
},
},
before drawing tree={
for rup={
tempkeylista'=,
for nodewalk/.wrap pgfmath arg={
{fake=root,filter={descendants}{(level())==##1}}{tempkeylista/.option=name}
}{level()},
radd/.register=tempkeylista,
},
}
},
radd/.style={
tikz+={
\foreach \i [remember=\i, count=\k, remember=\i as \j] in {#1}
\ifnum\k=1\relax\else\path (\i) -- (\j) node [midway] {$+$}\fi;
},
},
}
\begin{document}
\begin{forest}
rtree,
[]
\end{forest}
\begin{forest}
rtree,
rbranches'=3,
rlevels'=3,
[]
\end{forest}
\begin{forest}
rtree,
rbranches'=2,
rlevels'=5,
[]
\end{forest}
\end{document}
EDIT
This illustrates how to automatically add labels to the edges between parents and children based on a template filled in by Forest. For demonstration purposes, I've used the template
Step <level of recursion>: Branch <number of branch>
For most labels, the text is angled above the branch. If the number of branches is odd, the middle child's label is split over 2 lines and set horizontally, with a white fill behind to avoid the ugliness of the branch being drawn through it.
When labels are used, as in the default case, the tree is spaced out a bit to make room for them. This would need adjustment if the template differed markedly in size, of course.
Labels may be switched off using not rtree labels or switched on explicitly with rtree labels.
Using the extended style, the same code for the three trees as above produces automatically labelled versions.



% ateb: http://tex.stackexchange.com/a/333904/ addaswyd o côd Ignasi: http://tex.stackexchange.com/a/333886/
\documentclass[border=10pt,tikz]{standalone}
\usepackage{forest}
\forestset{
declare count register=rlevels,
declare count register=rbranches,
declare count register=rdenom,
declare count register=rwait,
declare boolean register=rtree labels,
rtree labels,
rlevels'=2,
rbranches'=3,
rdenom'=0,
rwait'=1,
define long step={rup}{}{fake=root,first leaf,ancestors},
rtree/.style={
delay={
repeat/.wrap pgfmath arg={
{##1}{
rwait'+=2,
delay n/.wrap pgfmath arg={
{########1}{
where n children=0{
repeat/.wrap pgfmath arg={
{################1}{
append={[, redge label/.wrap 2 pgfmath args={Step ################################################################1: Branch ################################################################2}{level()}{n()}]}
}
}{rbranches},
}{},
}
}{rwait},
}
}{rlevels},
},
before typesetting nodes={
if={(rdenom)==0}{
rdenom/.register=rbranches,
rdenom'+=1,
}{},
for tree={
circle,
draw,
math content,
s sep+=5pt,
if rtree labels={
l sep+=15pt,
}{},
},
where level=0{
content=n,
}{
if level=1{
content=\frac{n}{\foresteregister{rdenom}},
}{
content/.wrap pgfmath arg={\frac{n}{\foresteregister{rdenom}^{##1}}}{level()},
},
},
},
before packing={
if rtree labels={
where n children=0{
!u.l sep+=30pt,
!u.s sep+=20pt,
if level=1{}{
!uu.l sep+=20pt,
if level=2{}{
!uuu.l sep+=10pt,
},
},
}{},
}{},
},
before drawing tree={
for rup={
tempkeylista'=,
for nodewalk/.wrap pgfmath arg={
{fake=root,filter={descendants}{(level())==##1}}{tempkeylista/.option=name}
}{level()},
radd/.register=tempkeylista,
},
}
},
radd/.style={
tikz+={
\foreach \i [remember=\i, count=\k, remember=\i as \j] in {#1}
\ifnum\k=1\relax\else\path (\i) -- (\j) node [midway] {$+$}\fi;
},
},
redge label/.style={
if rtree labels={
if={(n())<(((rbranches)+1)/2)}{
edge label={node [midway, font=\scriptsize, above, sloped] {#1}},
}{
if={(n())>(((rbranches)+1)/2)}{
edge label={node [midway, font=\scriptsize, above, sloped] {#1}},
}{
temptoksa={#1},
split register={temptoksa}{:}{temptoksb,temptoksc},
edge label/.wrap 2 pgfmath args={node [midway, font=\scriptsize, align=center, fill=white] {##1:\\##2}}{temptoksb}{temptoksc},
},
},
}{},
},
}
\begin{document}
\begin{forest}
rtree,
[]
\end{forest}
\begin{forest}
rtree,
rbranches'=3,
rlevels'=3,
[]
\end{forest}
\begin{forest}
rtree,
rbranches'=2,
rlevels'=5,
[]
\end{forest}
\end{document}