617. Merge Two Binary Trees

来源:互联网 发布:linux 查看目录树结构 编辑:程序博客网 时间:2024/06/16 01:47

1. 原题

这里写图片描述

2. 分析

  • 可以看到题中要将两棵树求和, 没有的节点假设为0, 这样可以讲树的求和简化成每个节点的递归, 两棵树的大小也就可以视为一样,直到都检索完
  • 每个节点求和之后,向左右继续递归

3. 代码

/** * 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;        TreeNode* node = new TreeNode(t1->val + t2->val);        node->left = mergeTrees(t1->left, t2->left);        node->right = mergeTrees(t1->right, t2->right);        return node;    }};