# How to force children in a tree to go in the right direction?

I am drawing a tree and this is my effort below. It works OK except I would like 8 to be the left child of 5 (not drawn straight below it) and 10 to the right child of 8 (not drawn straight below it). How can I do that?

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[sibling distance=8em,
every node/.style = {shape=circle,
draw, align=center}]]
\node {1}
child { node {3}
child { node {9}}
child { node {7}}}
child { node {5}
child { node {8}
child { node {10}
child { node {12}}
child { node {15}
child { node {20}}
child {node {18}
}}}}};
\end{tikzpicture}


• Welcome to TeX.SE!! You just need to add child {edge from parent[draw=none]} at the correct height of the tree. And of course add more horizontal space between nodes because they will overlap. Feb 25 '20 at 21:38
• You should not allow your children to climb a tree and it is worse when you force them Feb 26 '20 at 10:23
• @SinanSamet To be fair, I was trying to stop them from sliding straight down a long vertical branch. Feb 26 '20 at 11:23
• @SinanSamet I love when questions like this appear in the Hot Network Questions; I have that momentary confusion until I see that it's not actually in the Parenting.SE. Feb 26 '20 at 14:55

Welcome to TeX.SE!!

You want this:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
level 1/.style ={sibling distance=12em},
level 2/.style ={sibling distance=6em},
every node/.style = {shape=circle,
draw, align=center}]
]
\node {1}
child { node {3}
child { node {9}}
child { node {7}}}
child { node {5}
child { node {8}
child {edge from parent[draw=none]} % Added
child { node {10}
child { node {12}}
child { node {15}
child { node {20}}
child {node {18}
}}}}
child {edge from parent[draw=none]} % Added
};
\end{tikzpicture}
\end{document}


It differs from @Zarko's answer because of the left alignment of 8.

first version: ups, after seeing @manooooh answer (+1) I recognize, that I misread the question and of course the resulted tree was wrong (for correct see @manooooh answer)

second version This tree can be simply drawn with forest package. Hopefull, that this time is correct designed tree:

\documentclass[border=10pt]{standalone}
\usepackage[edges]{forest}

\begin{document}
\begin{forest}
for tree = {draw,
shape=circle,
inner sep=0pt,
minimum size=1.6em,
l sep=6mm,
s sep=9mm
}
[1
[3
[9]
[7]
]
[5
[8
[,phantom]
[10
[12]
[15
[20]
[18]
]
]
]
[,phantom]
]
]
\end{forest}
\end{document}