LeetCode617合并二叉树

Posted 臭咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode617合并二叉树相关的知识,希望对你有一定的参考价值。

题目链接

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

题解

  • 递归解法
  • 解法见代码注释
// Problem: LeetCode 617
// URL: https://leetcode-cn.com/problems/merge-two-binary-trees/
// Tags: Tree Recursion
// Difficulty: Easy

#include <iostream>
using namespace std;

struct TreeNode{
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x):val(x),left(nullptr),right(nullptr){}
};

class Solution{
private:
    // 将树t1和t2合并至t1,并返回t1
    TreeNode* heleper(TreeNode* t1, TreeNode* t2){
        // 两个空树,返回null
        if(t1==nullptr && t2==nullptr)
            return nullptr;
        // 仅t2为空树,不需合并,直接返回t1即可
        else if(t1!=nullptr && t2==nullptr){
            return t1;
        }
        // 仅t1为空树,不需合并,直接返回t2即可
        else if(t1==nullptr && t2!=nullptr){
            return t2;
        }
        // t1和t2均非空
        else{
            t1->val += t2->val;  // 合并根结点
            t1->left = heleper(t1->left, t2->left);  // 合并左子树
            t1->right = heleper(t1->right, t2->right);  // 合并右子树
            delete t2;  // 释放结点
            return t1;
        }
    }

public:
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
        return heleper(t1,t2);
    }
};

作者:@臭咸鱼

转载请注明出处:https://www.cnblogs.com/chouxianyu/

欢迎讨论和交流!


以上是关于LeetCode617合并二叉树的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 617.合并二叉树

leetcode.617 合并两个二叉树

代码随想录Day20-Leetcode654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

⭐算法入门⭐《深度优先搜索》简单02 —— LeetCode 617. 合并二叉树

[LeetCode]617. 合并二叉树(递归)

LeetCode 617. 合并二叉树