在下面的代码片段中p是二叉搜索树中的一个节点,如果p的左孩子不为null我想把p改成指向它的左孩子,但是java是传值的,当函数返回树的结构保持不变。
void remove(BSTNode p)
{
if(p.ch[0]==null)
p=p.ch[0];
}
实际上我想实现类似下面的 C++ 代码:
void remove(BSTNode* &p)
{
if(p->ch[0]==NULL)
p=p->ch[0];
}
由于其他原因,我不想使用以下方式返回 p.ch[0] 并在每次调用删除后设置 p 。
BSTNode remove(BSTNode p)
{
if(p.ch[0]==null)
return p.ch[0];
}
如何做呢?