gpt4 book ai didi

java - 如何更改函数中的引用

转载 作者:行者123 更新时间:2023-12-01 17:29:21 28 4
gpt4 key购买 nike

在下面的代码片段中,p是二叉搜索树中的一个节点,如果p的左子节点不为空,我想将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];
}

如何做到这一点?

最佳答案

您可以使用一个简单的包装器:

class Wrapper<T> {
public T value;
}

void remove(Wrapper<BSTNode> p)
{
if(p.value.ch[0] == null)
p.value = p.value.ch[0];
}

关于java - 如何更改函数中的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12552535/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com