我定义了一个Node结构:
struct Node {
char val;
bool isEnd;
Node* childs[26];
Node* getChild(char c) {
return childs[c - 'a'];
}
Node getChild1(char c) {
return *childs[c - 'a'];
}
};
现在为了搜索这个节点的子树,我定义了一个searchSubTree()函数,如下所示:
void searchSubTree(string word, Node* cur) {
for (int i = 0; i < word.size(); ++i) {
...
cur = cur->getChild(word[i]);
}
}
这一切都很好,因为Node * cur是一个指针,我正在使用&#34; cur&#34;变量以临时指向节点及其子节点。
但是,我应该如何避免使用&#34;临时&#34;指针并在每次迭代中使用临时对象?我知道仅仅使用Node :: getChild1()签名是不够的,因为在行中:
cur = cur.getChild1(word[i])
这将导致&#34; cur&#34;的浅拷贝,并更新每个节点的实际内容,而我只希望cur是临时的,以便它可以遍历每个子节点。是否有一种优雅的方式来做到这一点?