2019/12/07
Posted jovesun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019/12/07相关的知识,希望对你有一定的参考价值。
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) 的栈空间
今天发现很多憨批都脱单了啊,什么时候到俺啊<?.?>
以上是关于2019/12/07的主要内容,如果未能解决你的问题,请参考以下文章