合并二叉树(力扣617)

这道题需要操控两棵二叉树,并且是"同步"遍历,如果两个二叉树的节点都不为空,就可以直接相加,这一步作为递归函数处理逻辑,如果有一方为空,就可以退出递归,这是递归终止条件。为了便于思考,我们采用前序遍历,也就是从根节点往下走,每遍历到一个节点执行处理逻辑。大家可以结合我下面的代码以及注释理解此题。

代码及注释如下:

复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
        //终止条件
        if(root1 == NULL) return root2;
        if(root2 == NULL) return root1;
        //处理逻辑
        root1 -> val += root2 -> val;
        //递归左子树
        root1 -> left = mergeTrees(root1 -> left,root2 -> left);
        //递归右子树
        root1 -> right = mergeTrees(root1 -> right,root2 -> right);
        return root1;
    }
};
相关推荐
晨晖210 小时前
顺序查找:c语言
c语言·开发语言·算法
LYFlied11 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
七禾页丫11 小时前
面试记录12 软件(c++)工程师
c++·面试·职场和发展
Salt_072811 小时前
DAY44 简单 CNN
python·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
货拉拉技术11 小时前
AI拍货选车,开启拉货新体验
算法
MobotStone11 小时前
一夜蒸发1000亿美元后,Google用什么夺回AI王座
算法
Wang2012201311 小时前
RNN和LSTM对比
人工智能·算法·架构
xueyongfu11 小时前
从Diffusion到VLA pi0(π0)
人工智能·算法·stable diffusion
永远睡不够的入12 小时前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems952712 小时前
二叉树深搜算法练习(一)
数据结构·算法