#include <iostream>
#include <vector>
using namespace std;//双链表节点结构
typedef struct treeNode {int value;struct treeNode* left;struct treeNode* right;treeNode(int x) : value(x), left(nullptr), right(nullptr) {}
} TreeNode;TreeNode* mergeTrees(TreeNode* head1, TreeNode* head2)
{if (head1 == nullptr){return head2;}if (head2 == nullptr){return head1;}TreeNode* merged = new TreeNode(head1->value + head2->value);merged->left = mergeTrees(head1->left, head2->left);merged->right = mergeTrees(head1->right, head2->right);return merged;
}void inOrderTraversal(TreeNode* root) {if (root == nullptr) {return;}inOrderTraversal(root->left);std::cout << root->value << " ";inOrderTraversal(root->right);
}int main()
{// 构建二叉搜索树TreeNode* root = new TreeNode(4);root->left = new TreeNode(2);root->right = new TreeNode(5);root->left->left = new TreeNode(1);root->left->right = new TreeNode(3);// 4// 2 5// 1 3TreeNode* root1 = new TreeNode(1);root1->left = new TreeNode(3);root1->right = new TreeNode(2);root1->left->left = new TreeNode(5);// 1// 3 2//5TreeNode* head = mergeTrees(root, root1);inOrderTraversal(head);system("pause");return 0;
}
https://blog.csdn.net/weixin_45295612/article/details/125027357