If there are several possibilities for "left" or "before", you need to choose the last one. If there are several possibilities for "right" or "after", you need to choose the first one. In the simple cases where there is only one choice, then you always have "node = left(right(node))", and "node = before(after(node))". This is why in the simple cases, you only have "double-sided arrows". But when a node has several possible "left nodes" (for example), then we get single arrows, except for the last "left node" where there is a double arrow. Note that in the figure, some of the arrows you circled in red are "before" arrows of a key closed edges. Closed edges are loops which don't have end vertices. Therefore, it is impossible to order its "before nodes" in case there are several. In this case, you can choose one arbitrarily. Any one will be okay, but you need to choose one.To summarize, when there are several "before" nodes, you need to choose the last one. But in the special case of a closed edge, there is no "first" or "last" before node, because it's a loop which could start anywhere. So in this case you can choose any of the possibilities.