表データからツリー構造への変換

末尾の表データをツリー構造に変換したく色々トライしていますがうまくいかぬorz
枝の深さの数がそれぞれ違うので途中でおかしくなって破綻するパターン。

週末は普通に休みだし、いい頭の体操になるかなー。

Id parentID
1
2 1
3 1
4 1
5 1
6 2
7 6
8 6
9 6
10 3
11 3
12 3
13 3
14 4
15 14
16 15
17 4
18 5
19 15
20 19
21 19
22 19
23 19