算法系列——合并二叉树(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 合并两个二叉树