我一直在尝试为一棵树提出一个复制构造函数。我找到了很多建议。
这个让我很感兴趣。
class TreeNode
{
int ascii;
TreeNode* left;
TreeNode* right;
public:
TreeNode() { ascii = 0; left = right = 0; }
TreeNode* clone();
// ...
};
TreeNode* TreeNode::clone()
{
if (TreeNode* tmp = new TreeNode)
{
tmp->ascii = ascii;
if (left) tmp->left = left->clone();
if (right) tmp->right = right->clone();
return tmp;
}
return 0;
}
是什么if (TreeNode* tmp = new TreeNode)
意思?
除此之外,它看起来还不错。它只是不能很好地工作。
知道有什么问题吗?
上面的例子来自这个网站。