一种非递归树节点删除方法?

时间:2016-09-29 08:42:22

标签: java tree nodes

编写非递归节点删除方法的最佳方法是什么?

我有这个开始的事情:

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子句替换递归实例,直到找到该节点。我想知道是否有更优雅的方式。

感谢您的帮助!

0 个答案:

没有答案