网站建设行业如何网站 ip修改备案流程
牛客热题:二叉树与双向链表> 📟作者主页:慢热的陕西人
🌴专栏链接:力扣刷题日记
📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

文章目录
- 牛客热题:合并二叉树
 - 题目链接
 - 方法一:递归
 - 思路
 - 代码
 - 复杂度
 
牛客热题:合并二叉树
题目链接
合并二叉树_牛客题霸_牛客网 (nowcoder.com)
方法一:递归
思路
- 将结果集合到t1树上 
- 当t2树为空时,直接结束递归
 - 当t1和t2都不为空时,那么将当前节点的值相加存储在t1树的对应节点 
- 并且去递归他们的子树
 - 将t2中存在的节点,而t1中不存在的节点都挂到t1树上对应的节点
 
 
 
代码
    void _TreeNode(TreeNode* t1, TreeNode* t2) {//两个树为空树的时候递归结束if (t1 == nullptr && t2 == nullptr) return ;//当只有t1树为遍历完得时候也递归结束if (t2 == nullptr) return ;//当两棵树都存在该节点时,将节点值的加和放到t1对应的节点上if (t1 != nullptr && t2 != nullptr) {//将当前节点的值相加t1->val = t1->val + t2->val;//分别去递归左右子树_TreeNode(t1->left, t2->left);_TreeNode(t1->right, t2->right);//t1不存在该节点,但是t2存在if (t1->left == nullptr && t2->left != nullptr) t1->left = t2->left;if (t1->right == nullptr && t2->right != nullptr) t1->right = t2->right;return ;}}TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {_TreeNode(t1, t2);return t1;}
 
复杂度
时间复杂度:O(M + N) ,最坏情况下,完全遍历两棵树,MN分别为两颗树的节点数
空间复杂度:O(N) ,最坏情况下,调用的函数栈帧和t2树的节点数相同
