先举例
void f(node*& r)
{
if (r == NULL) return;
f(r->next);
}
int main()
{
node* r;
f(r->next);
}
如果node是链表节点(树也行),r是链表头;那么关于函数f对链表做的修改,我可以理解为,在函数f的最尾有这样一行隐藏代码 “ (传入参数) = (函数形参)” ,于是我在f中对r做的修改,会在最终提现到主函数里的r->next上;
主要是,二叉查找树相关内容里,insert传入参数为 (BSTnode*& root) 时;
还有AVL树里,LL单旋转情况的时候,LL函数最尾有一个A = B,是因为传入参数root->lef会被t赋值为A,如果不修改的话旋转后的B节点就被跳过了;