循环中如何找到待删除的元素,是根据根节点的值去比较要删除的值是否相等吗?
登陆购买课程后可参与讨论,去登陆吧
对的呀。我们的递归算法也是根据节点的值去比较,和要删除的值相等呀:)
继续加油!:)
public void remove(E e){ if (root.size==0)return; Node curNode=root; Node n=null; while (curNode.data.compareTo(e)!=0){ n=curNode; if (curNode.data.compareTo(e)<0) { curNode=curNode.right; }else if (curNode.data.compareTo(e)>0){ curNode=curNode.left; } } if (null==curNode.right) { Node leftNode=curNode.left; curNode.size--; n.left=leftNode; }else if (null==curNode.left){ Node rightNode=curNode.right; curNode.size--; n.right=rightNode; }else{ Node successor=minimun(curNode); successor.right=removeMin(curNode.right); successor.left=curNode.left; curNode.left=curNode.right=null; curNode=successor; root=curNode; }
老师,是这样吗?
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案
102 3
74 3
388 2
235 3
38 18
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星