码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode617合并二叉树

时间:2020-07-26 01:03:49      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:tco   ==   ios   链接   name   logs   ref   names   github   

题目链接

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合并二叉树

标签:tco   ==   ios   链接   name   logs   ref   names   github   

原文地址:https://www.cnblogs.com/chouxianyu/p/13377638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!