import java.util.LinkedList; /*** * 已知两颗二叉树,将它们合并成一颗二叉树。 * 合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。例如: * 两颗二叉树是: * Tree 1 * 1 * / \ * 3 2 * / * 5 * * Tree 2 * 2 * / \ * 1 3 * \ \ * 4 7 * * 合并后的树为 * 3 * / \ * 4 5 * / \ \ * 5 4 7 * * 核心思路: * 同时遍历A、B两颗树, * 如果两颗树节点都不为空,则值相加,递归左右节点 */ public class NC117 { public TreeNode mergeTrees (TreeNode t1, TreeNode t2) { TreeNode root = null; if(t1!=null&&t2==null){ return t1; }else if (t2!=null&&t1==null) { return t2; }else if(t2!=null&&t1!=null){ t1.val = t1.val+ t2.val; t1.left = mergeTrees(t1.left,t2.left); t1.right = mergeTrees(t1.right,t2.right); } return t1; } /** * 非递归 * @param t1 * @
合并二叉树
最新推荐文章于 2022-03-23 17:43:45 发布