首页 > 其他分享 >BM32 合并二叉树

BM32 合并二叉树

时间:2023-01-03 09:56:31浏览次数:59  
标签:BM32 right mergeTrees 合并 t2 t1 二叉树

题目描述

已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。例如:
两颗二叉树是:
tree1
image
tree2
image
合并后的树
image
牛客原题

思路分析

采用递归的方法,因为每一个节点都在做重复的事
思考每次应该做什么
- 接收两个指针,也就是t1和t2,如果t1和t2都有,那么需要将值合并,合并到其中一条即可,
- 之后将t1和t2的左子树再递归调用一次,右子树也是如此

代码参考

const mergeTrees = function (t1, t2) {
  // 如果传的t1和t2都存在
  if (t1 && t2) {
    t1.val += t2.val
    t1.left = mergeTrees(t1.left, t2.left)
    t1.right = mergeTrees(t1.right, t2.right)
  }
  // 如果t1为空,则返回t2,否则,返回t1
  return t1 || t2
}

标签:BM32,right,mergeTrees,合并,t2,t1,二叉树
From: https://www.cnblogs.com/zx529/p/17021134.html

相关文章

  • BM31 对称的二叉树
    题目描述思路分析使用递归的方法,每次传递镜像的节点进去,compare函数专门用于比对,对不同的条件做不同的处理代码参考constisSymmetrical=function(pRoot){//w......
  • BM29 二叉树中和为某一值的路径(一)
    题目描述思路分析采用递归的方法,左(右)子树的sum=sum-root.val。每次都减去当前的root值,如果左子树或者右子树的节点值等于sum,则说明找到了,返回true,否则当root为空......
  • 力扣110 判断是否是平衡二叉树
    力扣110判断是否是平衡二叉树题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对......
  • leetcode-617. 合并二叉树
    617.合并二叉树-力扣(Leetcode)递归合并二叉树easy/***Definitionforabinarytreenode.*typeTreeNodestruct{*Valint*Left*TreeNode*......
  • 力扣107 二叉树的层序遍历
    力扣107二叉树的层序遍历题目:给你二叉树的根节点root,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)示例1:输入:root......
  • 14.平衡二叉树(AVL树)
    左旋转思想:当右子树的高度比左子树的高度高时(并且高度差绝对值超过了1时)代码示例:packagecn.com.avlTree;/***平衡二叉树*/publicclassAvlTreeDemo{......
  • leetcode-606. 根据二叉树创建字符串
    606.根据二叉树创建字符串-力扣(Leetcode)前序遍历/***Definitionforabinarytreenode.*typeTreeNodestruct{*Valint*Left*TreeNode*......
  • 力扣105 根据先序遍历以及中序遍历构建二叉树
    力扣105根据先序遍历以及中序遍历构建二叉树题目:给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树......
  • 力扣104 求二叉树的最大深度
    力扣104求二叉树的最大深度题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示......
  • BM27 按之字形顺序打印二叉树
    题目描述思路分析这题在上一道层序遍历的基础上会更加方便。我们之前就可以得到每一层的数据,此时只是对每一层的遍历顺序做相应的处理即可注意:1.我们在向tempQueue......