zoukankan      html  css  js  c++  java
  • Leetcode617.Merge Two Binary Trees合并二叉树

    给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。

    你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。

    struct TreeNode {
         int val;
         TreeNode *left;
         TreeNode *right;
         TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };
    
    class Solution {
    public:
    	TreeNode * mergeTrees(TreeNode* t1, TreeNode* t2) {
    		if (t1 == NULL && t2 == NULL)
    			return NULL;
    		if (t1 == NULL)
    		{
    			t2->left = mergeTrees(t1, t2->left);
    			t2 ->right = mergeTrees(t1, t2->right);
    			return t2;
    		}
    		else if (t2 == NULL)
    		{
    			t1 ->left = mergeTrees(t1 ->left, t2);
    			t1 ->right = mergeTrees(t1 ->right, t2);
    			return t1;
    		}
    		else
    		{
    			t1->val = t1->val + t2->val;
    			t1 ->left = mergeTrees(t1->left, t2->left);
    			t1 ->right = mergeTrees(t1->right, t2->right);
    			return t1;
    		}
    	}
    };

  • 相关阅读:
    剑指Offer47 不用加减乘除做加法
    剑指Offer46 求1+2+...+n
    剑指Offer45 约瑟夫环
    剑指Offer44 扑克牌的顺子
    剑指Offer43 n个骰子点数概率
    面试题分享
    初识python版本
    redis安装部署
    配置本地yum源
    闭包、装饰器
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10434048.html
Copyright © 2011-2022 走看看