C++11 如何在C++; 我有以下C++结构< /P> struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };

C++11 如何在C++; 我有以下C++结构< /P> struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };,c++11,pointers,self-reference,C++11,Pointers,Self Reference,我有一个函数,如果TreeNode的子树不包含值1,则将其子树设置为null bool modify(TreeNode *root) { if(root==NULL) return false; if(root->val!=1) { bool l = modify(root->left); bool r = modify(root->right); if(l||r) { return tru

我有一个函数,如果TreeNode的子树不包含值1,则将其子树设置为null

bool modify(TreeNode *root)
{
   if(root==NULL)
   return false;

   if(root->val!=1)
   {
      bool l = modify(root->left);
      bool r = modify(root->right);
      if(l||r)
      {
       return true;
      }
      else
      {
       root = NULL;
       return false;
      }
   }
   else
   return true; 
}

如何通过引用传递TreeNode*root,以便保存在
modify()
中所做的修改?

就像您对任何其他类型所做的修改一样,在正确的位置添加一个符号(
&
)。如果你大声说出你想要的:指向
TreeNode
的指针的引用,你很容易知道在哪里添加它。如果你从右向左写,你会把它写对的。谢谢,Modify(TreeNode*&root)工作了,我的代码中有一个错误,这就是为什么它看起来不工作的原因。