一、题目
1、审题
2、分析
将两个二叉树合并为一棵(对应的节点值相加)。
二、解答
方法一、
将 t1 作为目标二叉树,
① 若 t1 与 t2 均不为空, 则 t1 值为 t1 与 t2 值之和。递归计算 t1 左右孩子
② 若 t1 为空,则返回 t2
③ 若 t2 为空,则返回 t1
public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { if(t1 == null) return t2; if(t2 != null) { t1.val += t2.val; t1.left = mergeTrees(t1.left, t2.left); t1.right = mergeTrees(t1.right, t2.right); } return t1; }
方法二、
新建一棵二叉树,作为两颗树合并的结果。
public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { if(t1 == null) return t2; if(t2 == null) return t1; TreeNode newNode = new TreeNode(t1.val + t2.val); newNode.left = mergeTrees(t1.left, t2.left); newNode.right = mergeTrees(t1.right, t2.right); return newNode; }