617. 合并二叉树

深度优先搜索

class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {

        /**
         * 如果某棵树为空,则返回另一棵树
         */
        if (root1 == null){
            return root2;
        }

        if (root2 == null){
            return root1;
        }

        /**
         * 新的根节点值为两棵树根节点之和
         */
        TreeNode newRoot = new TreeNode(root1.val + root2.val);

        /**
         * 同时遍历左右子树
         */
        newRoot.left = mergeTrees(root1.left, root2.left);
        newRoot.right = mergeTrees(root1.right, root2.right);
        
        return newRoot;
    }
}

/**
 * 时间复杂度 O(n)
 * 空间复杂度 O(n)
 */

https://leetcode-cn.com/problems/merge-two-binary-trees/

上一篇:WPF 捕捉全局异常


下一篇:Kubernetes 安装手册(非高可用版)