• LeetCode偶尔一题 —— 617. 合并二叉树


    原题地址:https://leetcode-cn.com/problems/merge-two-binary-trees/
    原文链接:https://juejin.im/post/6877184981626519565/

    题目

    给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
    你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

    示例 1:

    输入: 
    	Tree 1                     Tree 2                  
              1                         2                             
             /                        /                             
            3   2                     1   3                        
           /                                                    
          5                             4   7                  
    输出: 
    合并后的树:
    	     3
    	    / 
    	   4   5
    	  /     
    	 5   4   7
    

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

    解题思路

    1. 对于 !t1 && !t2 返回 null
    2. 对于 t1 && !t2 返回 t1
    3. 对于 !t1 && t2 返回 t2
    4. 对于 t1 && t2,令 t1.val = t1.val + t2.val
    5. 递归
    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} t1
     * @param {TreeNode} t2
     * @return {TreeNode}
     */
    var mergeTrees = function(t1, t2) {
        if (!t1 && !t2) {
            return null
        }
        if (t1 && !t2) {
            return t1
        }
        if (!t1 && t2) {
            return t2
        }
        t1.val = t1.val + t2.val
        t1.left = mergeTrees(t1.left, t2.left)
        t1.right = mergeTrees(t1.right, t2.right)
        return t1
    };
    

    关注我的微信公众号「tony老师的前端补习班」,即可获得最新文章~

  • 相关阅读:
    C代码调用Java代码
    简易的美图秀秀利用别人的so库
    C代码输出日志
    JAVA向C传递数据
    JNI使用常见错误
    JNI的开发步骤
    NDk的目录
    交叉编译
    jquery的一点点认识
    [效率提升]工作中的那些命令行
  • 原文地址:https://www.cnblogs.com/pigpigever/p/13742438.html
Copyright © 2020-2023  润新知