// 同时遍历两棵树即可 // 递归返回值和参数:返回值就是TreeNode,参数是t1和t2 // 递归终结:如果都为null,返回null;一方为null,返回另一方 // 单层逻辑:合并结果,左侧为左子树合并结果,右侧为右子树合并结果
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param t1 TreeNode类 * @param t2 TreeNode类 * @return TreeNode类 */ public TreeNode mergeTrees (TreeNode t1, TreeNode t2) { // 如果t1为空,合并之后就应该是t2 if (t1 == null) { return t2; } // 如果t2为空,合并之后为t1 if (t2 == null) { return t1; } // 修改t1的数值和结构 t1.val = t1.val + t2.val; t1.left = mergeTrees(t1.left, t2.left); t1.right = mergeTrees(t1.right, t2.right); return t1; } }