LeetCode:二叉树相关应用

基础知识

617.归并两个二叉树

题目

Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.

You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.

Example 1:

Input: Tree 1                     Tree 2                  1                         2                             / \                       / \                            3   2                     1   3                        /                           \   \                      5                             4   7
Output:
Merged tree:3/ \4   5/ \   \ 5   4   7

Note: The merging process must start from the root nodes of both trees.

分析

以t1树为基础展开归并,首先两树都进行先序遍历,在遍历的过程中,如果发现一方当前节点不存在,则用另一者的节点桥接过来,如果两者都存在,则计算其和。

这里有两个小思考点:

  如果t1节点有,而t2节点没有,那么无须进行其他操作,并且t1节点的当前子节点都无需遍历,因为t2全都不存在。同理,t1没有,t2桥接过来,所有的子节点都无需再遍历。  

本题主要考察了二叉树的线性存储的先序遍历、递归思想。

标准题解

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {if(t1==null)return t2;if(t2==null)return t1;t1.val +=t2.val;t1.left = mergeTrees(t1.left,t2.left);t1.right = mergeTrees(t1.right,t2.right);return t1;}
}

  

转载于:https://www.cnblogs.com/MrSaver/p/8432584.html

LeetCode:二叉树相关应用相关推荐

  1. LeetCode二叉树系列——515.最每个树行中找最大值

    一.题目描述: 515. 在每个树行中找最大值 难度中等265收藏分享切换为英文接收动态反馈 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值. 二.题解 对二叉树不了解的,可以先看 ...

  2. LeetCode二叉树系列——236.二叉树的最近公共祖先

    一.题目描述: 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表 ...

  3. LeetCode二叉树系列——145.二叉树的后序遍历

    一.题目描述: 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 后序遍历. . 二.题解 对二叉树不了解的,可以先看第三部分的分析 /*** Definition for ...

  4. 八十一、Python | Leetcode 二叉树系列(下篇)

    @Author:Runsen @Date:2020/7/6 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  5. 二叉树相关面试题(二)

    二叉树相关问题,在面试中主要通过递归来实现 1.二叉树建立 /**二叉树建立**/ struct Data {int val; };typedef struct BiNode {Data data;B ...

  6. Leetcode: 二叉树的后序遍历

    Leetcode: 二叉树的后序遍历 后遍历的流程:一直往下走,把路口记下来,假如路口有馒头,我们是不吃的,因为要先吃最后的,中间的岔路如果有岔路,就把右边的岔路记下来,但是因为右边没有走过,所以访问 ...

  7. 编写算法判别给定二叉树是否为完全二叉树_别找了,链表和二叉树相关面试题以及解答,我都给你们找好了...

    来源公众号:苦逼的码农 作者:帅地 无论是在面试还是在平时的做题中,链表相关算法题以及二叉树相关算法题,可以说是考的非常非常多的.我在 2019 的秋招面试中,也是遇到了好几次.为此,我总结了 9 道 ...

  8. 用数组建立二叉树(LeetCode二叉树测试)

    我在做leetcode上的二叉树题目,经常会报错,但是又不知道错在哪里,于是我想到在vscode上调试我写的代码,于是我参考了leetcode 二叉树的建立.释放内存.层序遍历输出,C++ 做了简化, ...

  9. 卡特兰数 二叉树相关公式 二叉树ADT操作

    目录 卡特兰数 二叉树相关公式 二叉树ADT操作 卡特兰数 )! A(2,2)=4!/2!=4*3=12 A(4,2)=4!/2!=4*3=12 C(4,2)=4!/(2!*2!)=4*3/(2*1) ...

最新文章

  1. Clustered Data ONTAP Fundamentals课程第一单元学习笔记(续3)
  2. 推荐美加版S3好用的两个ROM
  3. 70个python毕设项目_56个具有开创性的Python开源项目-开始使用Python
  4. 如何获取独立项目开发经验
  5. Mysql执行计划的extra列及filesort祥析
  6. 路由器POS接入方式
  7. IOHelper(自制常用的输入输出的帮助类)
  8. powershell cs上线_BasUSB实现后台静默执行上线CobaltStrike
  9. 【Excel 教程系列第 5 篇】查找重复值
  10. 季冠2022年会 | 我们乘风而去 必将破浪而归
  11. Spring依赖注入
  12. google浏览器打开不久自动退出
  13. 【机器视觉】Halcon 18安装教程
  14. html5猜大王游戏,5月8日维护:新副本金兜洞兕大王部分测试
  15. NP=P,一种解决方案
  16. w500 安装mac
  17. BugKu_python_jail
  18. xray和burp联动
  19. (三)mmclassification图像分类——模型训练
  20. 如何在Linux中轻松隐藏文件和文件夹

热门文章

  1. java digestutils_java-Apache DigestUtils似乎部分错误地计算了MD5
  2. linux创建数据库并设置密码,CentOS 8安装MySQL教程并创建数据库并添加用户
  3. matlab产生一组均为一的矩阵,在matlab中如何从一组数中得到随机数组成一个n*n的矩阵...
  4. 『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积
  5. 数学--数论---P4718 Pollard-Rho算法 大数分解
  6. LeetCode Hot100 ---- 最长相关专题(动态规划)
  7. PowerPC VxWorks BSP分析(1)--PowerPC体系结构
  8. BLAS+BLACS+LAPACK+SCALAPACK安装
  9. 【语义分割】OCRNet:Object-Context Representations for Semantic Segmentation
  10. pytorch 音频分类_Pytorch中音频的神经风格转换