算法期中 合并二叉树
来源:互联网 发布:刘涛的淘宝店铺 编辑:程序博客网 时间:2024/06/05 14:24
Problem:
输入两个二叉树T1和T2,要求对T1和T2进行合并. 合并是指将二叉树同一位置节点上的数求和,作为合并后二叉树相应位置节点的数值. 如果某个位置上只有一个二叉树有节点,则合并后的二叉树对应位置上的节点上的数值就等于这个节点上的数值.
例如: T1 T2 1 2 / \ / \ 3 2 1 3 / \ \ 5 4 7 合并后: 3 / \ 4 5 / \ \ 5 4 7
T1和T2的结点数均不多于100000,每个结点的数值在1和1000之间.
请为下面的Solution类实现解决上述问题的merge函数,函数的两个参数T1和T2分别代表两个二叉树的根节点,函数返回值为合并后的二叉树的根节点.
Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };class Solution {public: TreeNode* merge(TreeNode* T1, TreeNode* T2) { }};
Code:
class Solution {public: TreeNode* merge(TreeNode* T1, TreeNode* T2) { visit(T1, T2); return T1; } void visit(TreeNode *T1, TreeNode* T2) { if (T1 == NULL && T2 == NULL) return; if (T1 != NULL && T2 != NULL) T1->val += T2->val; if (T1 != NULL && T2 == NULL) return; if (T1->left == NULL && T2->left != NULL) { T1->left = new TreeNode(0); } if (T1->right == NULL && T2->right != NULL) { T1->right = new TreeNode(0); } visit(T1->left, T2->left); visit(T1->right, T2->right); }};
阅读全文
0 0
- 算法期中 合并二叉树
- 算法期中1002. 合并二叉树
- 算法期中——合并二叉树
- 算法期中1000. 分组
- [算法期中] 分组
- 算法期中 拓补序
- 算法期中 最小差
- 算法期中 最小和
- 【二叉树】合并二叉树
- 算法期中1005. 最小和
- 算法期中 : 1005. 最小和
- 算法期中 最近的0
- 算法期中——分组
- LeetCode二叉树合并
- 合并两个二叉搜索树
- 合并两棵二叉树
- 合并俩棵二叉树
- 算法期中1003. 最近的0
- 图的广度优先搜索算法并生成BFS树
- ubuntu修改时区和时间的方法
- “MacTalk 跨越边界” iBooks.
- 区块链工程师学习路线图
- obhect创建的两种方法
- 算法期中 合并二叉树
- 立即执行函数
- SAP Hana 数据库编程接口
- 用TensorFlow实现的Mask R-CNN在人体语义分割上的效果
- 顺序结构
- 算法期中 最小差
- 循环结构
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile)
- Tomcat8.exe一闪而过问题解决