我有一个无序的二叉树,我必须做一个删除根 x 的子树的方法。如果元素 x 在二叉树中多次出现,则该方法仅删除根 x 的一个子树(它找到的第一个子树)。如果执行了删除,则返回 true。如果元素 x 不存在于二叉树中,则返回 false。所以方法是:
public class BinaryTree
{
protected class Node
{
Integer element;
Node left;
Node right;
Node(int element)
{
this.element = element;
left = right = null;
}
Node(int element, Node left, Node right)
{
this.element = element;
this.left = left;
this.right = right;
}
protected Node root;
public BinaryTree()
{
root = null;
}
private class BoolNode
{
boolean ft;
Node nodo;
BoolNode(boolean ft, Node nodo)
{
this.ft = ft;
this.nodo = nodo;
}
}
public boolean removeSubtree(int x)
{
BoolNode ris = removeSubtree(x, root);
//root = ...;
return ris.ft;
}
private BoolNode removeSubtree(int x, Node node)
{
return null;
}
}
我不知道如何开始,有人知道吗?甚至伪代码..谢谢!