Merge Two Binary Trees问题及解法
来源:互联网 发布:大黄蜂爱国者数据 编辑:程序博客网 时间:2024/05/21 19:31
问题描述:
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.
You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.
示例:
Input: Tree 1 Tree 2 1 2 / \ / \ 3 2 1 3 / \ \ 5 4 7 Output: Merged tree: 3 / \ 4 5 / \ \ 5 4 7问题分析:
采用深度递归遍历,将两数结合起来。
过程详见代码:
/** * 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* mergeTrees(TreeNode* t1, TreeNode* t2) {if (t1 == NULL) return t2;if (t2 == NULL) return t1;dfs(t1, t2);return t1;}void dfs(TreeNode* t1, TreeNode* t2){t1->val += t2->val;if (t1->left == NULL){t1->left = t2->left;}else if (t1->left != NULL && t2->left != NULL)dfs(t1->left, t2->left);if (t1->right == NULL){t1->right = t2->right;}else if (t1->right != NULL && t2->right != NULL)dfs(t1->right, t2->right);}};
阅读全文
0 0
- Merge Two Binary Trees问题及解法
- Merge Two Binary Trees 解法
- 617. Merge Two Binary Trees的C++解法
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Merge Two Binary Trees
- Unique Binary Search Trees问题及解法
- Merge Two Sorted Lists问题及解法
- 617. Merge Two Binary Trees
- Leetcode617. Merge Two Binary Trees
- 617. Merge Two Binary Trees
- leetcode617: Merge Two Binary Trees
- form表单提交
- 【TFS安装】TFS 2013 安装(详细)
- 谈谈高并发系统的限流
- EXCEL
- 使用ajax发起一个请求完成之后再发起另一个请求
- Merge Two Binary Trees问题及解法
- 【舆情监测】中科天玑带您回顾一周热点(7.17-7.21)
- 应用宝手机端打开指定应用链接,支持未上线应用
- 让IE支持placeholder属性
- Postman下载安装和使用
- 自定义二维码
- 程序员北京三年买房的秘密
- linux服务(daemon and service)- 设置开机启动服务
- tableViewCell左滑出现删除或其它按钮