前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetCode167|合并二叉树

leetCode167|合并二叉树

作者头像
码农王同学
发布2021-01-15 11:04:11
2850
发布2021-01-15 11:04:11
举报
文章被收录于专栏:后端Coder

一,合并二叉树

1,问题简述

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

2,示例描述

代码语言:javascript
复制
示例 1:

输入: 
	Tree 1                     Tree 2                  
          1                         2                             
         / \                       / \                            
        3   2                     1   3                        
       /                           \   \                      
      5                             4   7                  
输出: 
合并后的树:
	     3
	    / \
	   4   5
	  / \   \ 
	 5   4   7
注意: 合并必须从两个树的根节点开始。

 

3,题解思路

利用递归的思想进行解决

4,题解程序

代码语言:javascript
复制
public  class MergeTreesTest2 {
    public static void main(String[] args) {
        TreeNode t1=new TreeNode(1);
        TreeNode t12=new TreeNode(3);
        TreeNode t13=new TreeNode(2);
        TreeNode t14=new TreeNode(5);
        t1.left=t12;
        t1.right=t13;
        t12.left=t14;

        TreeNode t2=new TreeNode(2);
        TreeNode t22=new TreeNode(1);
        TreeNode t23=new TreeNode(3);
        TreeNode t24=new TreeNode(4);
        TreeNode t25=new TreeNode(7);
        t2.left=t22;
        t2.right=t23;
        t22.right=t24;
        t23.right=t25;
        TreeNode treeNode = mergeTrees(t1, t2);
        System.out.println("treeNode = " + treeNode);


    }

    public static  TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
        if (t1 == null && t2 == null) {
            return null;
        }
        if (t1 == null) {
            return t2;
        }
        if (t2 == null) {
            return t1;
        }
        TreeNode root = new TreeNode(t1.val + t2.val);
        root.left = mergeTrees(t1.left, t2.left);
        root.right = mergeTrees(t1.right, t2.right);
        return root;
    }
}

5,总结一下

利用递归的思想进行解决,这也是很常用的思路,这里分享一下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,合并二叉树
    • 1,问题简述
      • 2,示例描述
        • 3,题解思路
          • 4,题解程序
            • 5,总结一下
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档