当前位置: 首页 > article >正文

合并二叉树(力扣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;
    }
};


http://www.kler.cn/a/523997.html

相关文章:

  • MySQL中的读锁与写锁:概念与作用深度剖析
  • Java中的泛型
  • WordPress event-monster插件存在信息泄露漏洞(CVE-2024-11396)
  • Java 在包管理与模块化中的优势:与其他开发语言的比较
  • SQL教程-基础语法
  • 嵌入式知识点总结 ARM体系与架构 专题提升(三)-中断与异常
  • Verilog语言学习总结
  • Linux 4.19内核中的内存管理:x86_64架构下的实现与源码解析
  • 字节一面, Go语言的Map 的扩容机制是怎样的?
  • (三)Session和Cookie讲解
  • 2025春晚刘谦魔术揭秘魔术过程
  • 【仪器分析】FACTs-幅度
  • 【deepseek】deepseek-r1本地部署-第二步:huggingface.co替换为hf-mirror.com国内镜像
  • python学opencv|读取图像(四十八)使用cv2.bitwise_xor()函数实现图像按位异或运算
  • MySQL知识点总结(十三)
  • 【LeetCode】--- 二叉树的所有路径
  • nginx分发请求超时切换服务
  • C#:25大前沿特性揭秘
  • Axure PR 9 旋转效果 设计交互
  • C#System.Threading.Timer使用实例
  • 有限元分析学习——Anasys Workbanch第一阶段笔记梳理
  • 定西市建筑房屋轮廓数据shp格式gis无偏移坐标(字段有高度和楼层)内容测评
  • 【Samba】Ubuntu20.04 Windows 共享文件夹
  • 【Unity3D】实现2D角色/怪物死亡消散粒子效果
  • 基于STM32的智能家用温控器设计
  • Linux中page、buffer_head、bio的关系