2020-05-30学习随笔

序言

学习随笔是本人对自己一天的自学回顾,由于本人是非科班出身,不懂很多cs的专业术语,所以难免会有些错误,望各位批评指正,本人定当悉心接受并立即改正。希望自己能够慢慢坚持下去,坚持转行的道路,坚持每天学习的输出。

刷题篇

LeetCode

1.题目
给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

2.大致思路

我最开始考虑的是边界条件,比如两棵树为空,一棵树为空而另一棵树不为空(刷题留下的“后遗症”),再考虑两棵树均不为空的情况。

看到树的题目,首先想到的就是递归,但我有一个没想到的地方就是,因为此题返回值是true / false,所以我以为一直搜寻左子树,它无法回溯去搜寻右子树。

其实想既搜索左子树又搜索右子树很简单,用&&连接就好了。

3.代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isSameTree(struct TreeNode* p, struct TreeNode* q){
    if(!p&&!q) return true;
    else if(p!=NULL&&q!=NULL){
        if(p->val==q->val){
            return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
        }
    }
    else return false;
    return 0;
}

4.出现的问题

如果我不加上最后一行的 retrun 0;

LeetCode会报错:control reaches end of non-void function [-Werror=return-type]

加上就不会了,这是为何?望大佬解答,十分感谢。

5.多说两句

总所周知,chem is try ,由于疫情缘故,导致本学期的三门实验课全部挤压在了这最后一个月中,导致全天都在往各个实验室跑,剩下的都是零碎时间。

而又临近期末,马上就到考试周了,基本没怎么学本专业课程的我,由于有抢夺保研名额的压力,所以本专业的学习成绩也不能落下。

更恐怖的是,数模导师要在这个时间段进行数模培训......我裂开

希望我没事。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。