编写非递归节点删除方法的最佳方法是什么?
我有这个开始的事情:
public deezNodes remove(int x) {
if (this == nullnode ) return nullnode;
if (x < this.iData) {
this.left = this.left.remove(x);
} else if (x > this.iData) {
this.right = this.right.remove(x);
} else if (this.left == nullnode) {
return this.right;
} else if (this.right == nullnode ) {
return this.left;
} else { // Two children
this.iData = (this.left).rmLarge(this).iData;
}
return this;
}
我的kneejerk响应将使用更多if / else子句替换递归实例,直到找到该节点。我想知道是否有更优雅的方式。
感谢您的帮助!