Hier ein Stück Pseudocode das das ganze Lösen sollte:
Code:
var recentNode = root(); // depth = 0
for ([depth, element] in list)
parentNode = recentNode
while (parentNode.depth >= depth)
parentNode = parentNode.parent
parentNode.addChild(element)
recentNode = element
(ungetestet, erwartet gültige Tiefenangaben)
[add]Erklärung: Der Code merkt sich den zuletzt hinzugefügten Knoten. Dann hangelt er sich den Baum hoch, bis die richtige Tiefe erreicht ist, und fügt dann das nächste Kind ein.