投稿者 魔界の仮面弁士  (社会人) 投稿日時 2021/2/14 21:49:29
>> Return された戻り値を捨てているからですね。
> これの意味がわからないのですが、

言い換えると、メソッドの戻り値を受け取っていないのが問題だということです。
Dim n As TreeNode = 再帰(temp.Parent)



元のコードはこうなっています。

Dim temp As TreeNode = node  '変数 temp に現在のノードを渡す 
If temp.Level > 0 Then
     再帰(temp.Parent)   'temp.Parent に対して何か処理しているが、変数 temp は node を指したまま 
End If
Return temp    'だから結局、これは「Return node」と何も変わらない 



元のコードを活かすのであれば、
 「node.Level = 0 の時は Return node」
 「node.Level > 0 の時は、Return 再帰(node.Parent)」
というコードになるでしょうね。