LeetCode_617
题目描述:合并二叉树
我的解法:两个节点均有值,则值相加;仅有一个值,则为该值;否则为空;
递归实现:返回值为节点,终止条件为二者节点均为空,递归条件为res -> left = mergeTree(t1->left, t2->left); res->right = mergeTree(t1->right, t2->right);
部分代码:
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { if (t1 == NULL && t2==NULL) return NULL; else if (t1==NULL && t2!=NULL) return t2; else if (t1!=NULL && t2 == NULL) 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; } }
题后反思:解法与官方大致同,表扬哦。(第一个if条件有点弱智484)
时间复杂度:O(N),其中 N 是两棵树中节点个数的较小值。
空间复杂度:O(N),在最坏情况下,会递归 N 层,需要 O(N) 的栈空间
今天发现很多憨批都脱单了啊,什么时候到俺啊<?.?>
原文地址:https://www.cnblogs.com/Jovesun/p/12003785.html
时间: 2024-11-02 21:07:01