这里面有个特殊情况,就是查找的节点就是root节点。
它也是个叶子节点。那么直接 null,而且这种情况必须先判断。否则后序会报错
public void del(int value) {
if (root == null) {
return;
}
Nod search = root.search(value);
if (search == null) {
return;
}
//如果代码向下走证明,树中有要删除的点
if (root.left == null && root.right == null) {//如果满足证明已经,找到,并且树只有根节点,那么就是要删除根节点。
root = null;
return;
}//如果不是根节点。肯定就会有父节点的。
Nod pa = root.searchParent(value);
if (search.left == null && search.right == null) {
if (pa.left != null && pa.left == search) {
pa.left = null;
} else if (pa.right != null && pa.right == search) {
pa.right=null;//暂时如果执行到这个位置。方法已经结束。不需要return了
}
}
}