看一看,这个问答是不是就是你的问题?https://coding.imooc.com/learn/questiondetail/96268.html
这里的关键是,这个函数处理的是以node为根节点的二分搜索树(不是root),删除他的最小值,返回新的二分搜索树的根。如果node这个根节点的左子树为空,那么node就是要删除的节点。删除以后,就剩下node的右子树了。(因为左子树为空)
删除的结果,将传回给上一层递归调用,而不是root。其实,这个过程,和我们之前在第五章讲的链表的递归删除,是完全一样的。只不过链表不分左右而已:)
可以创建一个小型的二分搜索树,然后删除其中的最小值,跟踪一下整个删除过程,再仔细体会一下。建议一定对比链表的递归删除,把其中的逻辑想明白:)
加油!:)