617. 合并二叉树

✅做题思路or感想:

有返回值的递归果然还是特别不熟练啊

  • 递归参数:因为要同时遍历两棵树,所以要同时传入两棵树的节点!
  • 递归中止条件:当其中一个节点无的时候,就返还另一个节点(两个节点都无,就返回空节点)
  • 递归单层逻辑:两个节点的值相加(因为前面中止条件决定了这里的两个节点都必定不是空节点)
  • 有返回值的递归最后还要再把节点返回回去,太男了
class Solution {
public:
    TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
        //递归中止条件
        if (root1 == nullptr)return root2;
        if (root2 == nullptr)return root1;
        //单层逻辑
        root1->val += root2->val;
        //递归
        root1->left = mergeTrees(root1->left, root2->left);
        root1->right = mergeTrees(root1->right, root2->right);
        //最后还要返回值给递归函数
        return root1;
    }
};
posted @   北原春希  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示