>>15
>n.left = root.left;
n よりも小さなノードが n.left に連なっているはずだよ、これをすると n.left 以下が宙ぶらりんになってしまうよ
また
n.left を root.left にすると
root.left -> ...... ->n->root.left で巡回してしまうよ