スキームで二分探索木からノードを削除しようとしていますが、コードの削除部分に問題があります。スキームで新しいツリーを作成せずにノード値を削除するにはどうすればよいですか?
(define (delete-node v T)
(cond ((null? T) '())
((< v (value T))
(delete-node v (left T)))
((> v (value T))
(delete-node v (right T)))
(else
(cond ((and (null? (right T))(not (null? (left T)))) '())
;promote the (left T) to the node
;repeat
((and (null? (left T))(not (null? (right T)))) '())
;promote the (right T) to the node
;repeat