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;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端