删除不理解
来源:6-12 删除二分搜索树的任意元素
慕娘7243799
2018-09-12
这里有左子树为空 右子树为空 那么左子树不为空且要删除的节点不是最小点而是在中间
写回答
1回答
-
liuyubobobo
2018-09-12
抱歉,我没有特别理解你的问题。。。
首先要注意,我们在递归的过程中,真正进入250行的if才会进行删除。待删除节点一定是当前递归函数中的node节点,即当前遍历的子树的根节点。
否则会在242-249行继续寻找待删除节点究竟在哪里。
当然有可能找不到,即在239-240行进行处理(返回空)。
如果当前已经找到了待删除节点,即为node,则:
252-258行处理的是待删除的节点的左子树为空的情况,处理完就会返回;
260-266行处理的是待删除的节点的右子树为空的情况,处理完就会返回;
268-278行处理的是待删除的节点的左右子树均不为空的情况,处理完就会返回;
以上三种情况已经穷尽了待删除节点node的所有可能:)
022018-09-12
相似问题