关于remove(Node,E)方法
来源:6-12 删除二分搜索树的任意元素
何时才能成大佬
2019-09-08
在remove(Node,E)中,交换successor.right=removeMin(node.right);和successor.left=node.left; 的顺序,程序就会报错,例如:
在主方法中:
当remove(Node,E)方法的次序为
程序运行结果为:
但是,当remove(Node,E)方法的次序为
程序运行结果为:
请问bobo老师这个是怎么回事?
写回答
2回答
-
这两句话的顺序不能颠倒。应该和这个问题是一个问题:http://coding.imooc.com/learn/questiondetail/62681.html
关键是,先执行 successor.left=node.left; 改变了node.right的树的结构。
而 successor.right=removeMin(node.right); 依赖于这个结构。
继续加油!:)
112019-09-08 -
何时才能成大佬
提问者
2019-09-08
谢谢bobo老师了 画了图理解了
112019-09-08
相似问题