Como coloco nós no mesmo nível no DOT?

Quero renderizar várias árvores simultaneamente e colocar todos os nós de raiz e todos os nós de folhas no mesmo nível.

Aqui está um exemplo do que estou tentando fazer. Os nós raiz A e X estão no mesmo nível e os nós folha B, D e Z.

Tentei, sem sucesso, colocar raízes em uma posição e deixar em outra da seguinte maneira:

digraph G { 
rankdir = TB;
subgraph {
A -> B
A -> C
C -> D
X -> Y
rank = same; A; X;
rank = same; B; D; Y;
} /* closing subgraph */
}

E obtive esse resultado em que tudo está na mesma posição.

Alguma sugestão sobre o que eu deveria estar tentando? Eu já tenho raízes e folhas identificadas.

questionAnswers(1)

yourAnswerToTheQuestion