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

牛客热题:合并二叉树

牛客热题:二叉树与双向链表> 📟作者主页:慢热的陕西人

🌴专栏链接:力扣刷题日记

📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

在这里插入图片描述

文章目录

  • 牛客热题:合并二叉树
    • 题目链接
    • 方法一:递归
      • 思路
      • 代码
      • 复杂度

牛客热题:合并二叉树

题目链接

合并二叉树_牛客题霸_牛客网 (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树的节点数相同

http://www.lryc.cn/news/350590.html

相关文章:

  • conda 常用20个命令
  • Git泄露(续)
  • clickhouse卸载与安装
  • npm install [Error]
  • Redisson分布式锁全解析:从基础到红锁,锁定高并发解决方案
  • RocketMQ-Dashboard 控制台使用详解
  • JSP+SQL学生成绩管理系统
  • 5G工业路由器实现驾考科目三实时监控与远程控制
  • 基于微信小程序+JAVA Springboot 实现的【智慧乡村旅游服务平台】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)
  • 图片中的表格转成word用什么工具好?
  • P1305 新二叉树
  • 设计模式学习笔记 - 回顾总结:在实际软件开发中常用的设计思想、原则和模式
  • CPT7数据保存详细步骤
  • 物联网促进信息化——​青创智通工业物联网解决方案​
  • 服务端Web资源缓存
  • STM32-09-IWDG
  • Android手动下载Gradle的使用方法
  • 2024彩虹医械维修培训邀请
  • 车辆超龄无法注册滴滴司机怎么办理账号
  • MATLAB车辆动力学建模 ——《控制系统现代开发技术》
  • 复杂json解析(其中有一个key的value是json格式的字符串)
  • 线程池的一些问题
  • 企业或者个体户为什么会经营异常?
  • ROS从入门到精通4-3:制作Docker镜像文件Dockerfile
  • 【CV】计算机视觉是什么?
  • 如何在Vue中实现鼠标悬浮展示与隐藏弹窗的功能
  • 03 Linux编程-进程
  • Hbuild-X运行ios基座app
  • Node.js基础:从入门到实战
  • 考研408笔记总结~