>>659
>return leftもreturn rightもあるだろ。
それは value == v のときだけ、言い直すと削除対象のノードをみつけて削除するときだけに実行されるんだね

削除対象をみつけるまではひたすら再帰呼び出し、削除した後で root に遡っていくときに
left = left.delNode(v);

あるいは
right = right.delNode(v);

この left や right は更新されないでしょ?

まあそんなことはどうでもよくて、>>608 の再帰コール前に null チェックとか、めちゃ読みにくいねえ‥‥コンパクトさが再帰の身上なのに、これじゃ再帰で書く意味がない‥‥
最近は再帰の頭に終端処理を書くとかやらないのか?こんなコードをのっけてる教科書があったらぜひ教えてほしい