如何在C++中合并二叉树的两个节点

How do I merge two nodes for a Binary Tree in C++?

本文关键字:节点 两个 二叉树 C++ 合并      更新时间:2023-10-16
Node BinaryTree::Merge(Node* n1, Node* n2)
{
     Node sum = n1+n2;
     return sum;
}

这将返回一个错误:"智能感知:表达式必须具有整数或无作用域枚举类型">

int BinaryTree::Merge(Node* n1, Node* n2)
{
    int sum = n1->nodeValue+n2->nodeValue;
    return sum;
}

不能添加两个指针,这很明显。

看起来您需要在堆而不是运行时堆栈上声明要返回的"Node"。 尝试

Node* BinaryTree::Merge(Node* n1, Node* n2)
{
     Node* sum = new Node(n1+n2);
     return sum;
}

为此,您可能需要稍微重构代码。确保解除分配 n1 和 n2 以及返回的节点以避免内存泄漏。