算法系列——合并二叉树(Merge Two Binary Trees)

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——合并二叉树(Merge Two Binary Trees)相关的知识,希望对你有一定的参考价值。

题目

题目链接:https://leetcode-cn.com/problems/merge-two-binary-trees
给你两棵二叉树: root1 和 root2 。

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。

思路

应用递归,理清递归结束条件和 本级递归应该返回什么。

代码

/**
 * 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;
        
        TreeNode node=new TreeNode(t1.val+t2.val);
        node.left=mergeTrees(t1.left,t2.left);
        node.right=mergeTrees(t1.right,t2.right);
        return node;
    


以上是关于算法系列——合并二叉树(Merge Two Binary Trees)的主要内容,如果未能解决你的问题,请参考以下文章

算法系列——合并二叉树(Merge Two Binary Trees)

[LeetCode] Merge Two Binary Trees 合并二叉树

617.Merge Two Binary Trees 合并两个二叉树

617. Merge Two Binary Trees 合并两个二叉树

617. 合并二叉树

617. 合并二叉树