文章目录

  • 题目描述
  • 思路 & 代码
    • 更新版

题目描述

  • 貌似是面试高频题,显而易见的递归。

思路 & 代码

  • 合并两棵树,先不考虑特殊情况,可以理解成:根结点合并,然后各自的左右子树继续进行合并操作。
  • 那么递归返回值肯定是当前函数根结点
  • 特殊情况:两棵树都为空、其中一颗为空。
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {// 返回空的情况if(root1 == null && root2 == null){return null;}// 返回另一条链表的情况if(root1 == null || root2 == null){return root2 == null ? root1 : root2; }// 继续合并的情况root1.val += root2.val;root1.left = mergeTrees(root1.left,root2.left);root1.right = mergeTrees(root1.right,root2.right);return root1;}
}

更新版

  • 感动,能感受到有点进步
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;}
}

【LeetCode笔记】617. 合并二叉树(Java、DFS、二叉树)相关推荐

  1. leetcode系列-617.合并二叉树

    题目描述:给你两棵二叉树: root1 和 root2 .想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会). 你需要将这两棵树合并成一棵新二叉树. 合并的规则是: ...

  2. 【LeetCode】617. 合并二叉树

    一.题目描述 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的 ...

  3. 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)

    文章目录 题目描述 思路 && 代码 1. 递归做法 2. 辅助栈做法 二刷 打卡第四天-昨天没来得及写博客= = 题目描述 无须多言,直接冲思路吧! 思路 && 代码 ...

  4. 代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

    文章目录 LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 LeetCode 701.二叉搜索树中的插入操作 题目讲解 思路 LeetCode 450.删除二叉搜索树中的节点 题目讲解 ...

  5. 【二叉树Java】二叉树遍历前序中序后序遍历的非递归写法

    本文主要介绍二叉树前序中序后序遍历的非递归写法 在探讨如何写出二叉树的前序中序后序遍历代码之前,我们先来明确一个问题,前序中序后序遍历根据什么区分? 二叉树的前序中序后序遍历,是相较根节点说的.最先遍 ...

  6. 《LeetCode力扣练习》第617题 合并二叉树 Java

    <LeetCode力扣练习>第617题 合并二叉树 Java 一.资源 题目: 给你两棵二叉树: root1 和 root2 . 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些 ...

  7. 【LeetCode】【HOT】617. 合并二叉树(递归)

    [LeetCode][HOT]617. 合并二叉树 文章目录 [LeetCode][HOT]617. 合并二叉树 package hot;import java.util.ArrayDeque; im ...

  8. Leetcode.617 合并二叉树

    题目链接 Leetcode.617 合并二叉树 easy 题目描述 给你两棵二叉树: root1和 root2. 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会) ...

  9. LeetCode 617. 合并二叉树

    617. 合并二叉树   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客,亓官劼的博客2. 难度 简单 题目 给定两 ...

  10. 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java

    <LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...

最新文章

  1. php语句拼装,Thinkphp语句拼接
  2. 版本控制8(译文) -(完)
  3. 基于Docker的开源端到端开发者平台
  4. postfix+mysql+dovecot
  5. python 笔记:if __name__==‘main’
  6. CentOS安全设置
  7. sklearn.model_selection中train_test_split的坑
  8. nuxt.js 引入第三方插件报window is not defined
  9. python能做什么项目-用python真的可以做很多有趣的事!我自己做了些小项目!大家看看...
  10. php mysql购物车代码_php购物车实现代码实例汇总
  11. DelphiXE环境认知(第一章 Project Options)
  12. 2022电大国家开放大学网上形考任务-中华文化概说非免费(非答案)
  13. 计算机c盘只能新建文件夹,1.C盘只能新建文件夹不能新建文件(用户权限问题)...
  14. 中国1:100万土壤数据处理
  15. Kubernetes 的网络原理 (五)---CNI网络模型
  16. linux wgei目录,近 100 个 Linux 常用命令大全
  17. 简单的python爬虫爬豆瓣图书TOP250
  18. CAD-CASS免费增强测绘工具CASS++
  19. android绘画板界面,手机绘画板(MediBang Paint Tablet)
  20. Altium Designer 21 原理图库元件模型的组成介绍以及简单的电阻电容元件模型的创建

热门文章

  1. 计算机组成原理——机器字长、指令字长、存储字长
  2. linux网络包截获,用C实现截获网络数据包
  3. python定义类时括号_为什么在定义类时括号是可选的,而在定义函数时括号是必需的?...
  4. 华为手机怎么使用读卡器_华为手机使用小窍门
  5. linux vim下删除一行和多行
  6. MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结
  7. 利用scipy包计算表格线的峰值,还原表格得到表格结构
  8. 别以为if slse很简单——决策树
  9. android之phonegap入门
  10. Android客户端与服务器之间传递json数据