如何在C++中合并二叉树的两个节点
How do I merge two nodes for a Binary Tree in C++?
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 以及返回的节点以避免内存泄漏。
相关文章:
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 检查两个节点在子节点上是否具有相同状态的更优雅的方法
- 比较两个节点坐标的最佳方法是什么?
- 使用 Dijkstra 算法跟踪两个节点之间的最短路径
- 比较C++中两个BST的节点
- 图问题:找出两个节点是否在每个节点的O(1)时间和O(2)存储中共享同一分支
- 如何在单个链表中交换两个节点的位置,只修改指针
- 如何遍历具有两个节点的链接节点
- 查找树中两个节点之间的最大成本边
- 添加一个节点,并在通用树中的两个给定节点之间找到路径成本,其中c 中的儿童列表
- 难以通过具有两个类和一个 LLL 的头节点
- 查找树(不属于任何特定类型的简单连接树)中两个节点之间的路径
- 两个单链列表共享同一个节点和析构函数两次删除相同的内存
- 为什么不交换两个节点?
- 使用 Dijkstra 算法计算两个节点之间的最短路径
- 链接列表C 类,这两个添加节点实现之间的差异是什么?
- 有没有办法在两个ROS节点之间具有优先级
- 在 C 语言的链表中查找最小的两个节点
- 当两个节点相互指向时,不可避免的内存泄漏
- 如何使用BFS查找两个节点之间的距离