2020-06-03学习随笔

序言

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

刷题篇

LeetCode

1.题目

计算给定二叉树的所有左叶子之和。

2.大致思路

依旧是递归的训练

先要明确什么是左叶子,这里我可能有点问题,所以在写条件的时候写错了,筛选不出左叶子

左叶子:首先要是左孩子,并且这个左孩子还要没有左右子树(这里我就是犯迷糊了)

3.代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int sumOfLeftLeaves(struct TreeNode* root){
    if(root==NULL) return 0;
    int res=0;
    if(root->left!=NULL&&root->left->left==NULL&&root->left->right==NULL){
 //条件这里我一开始只有root->left==NULL&&root->right==NULL
//导致无法筛选出左叶子
        res=root->left->val;
    } 
    return res+sumOfLeftLeaves(root->left)+sumOfLeftLeaves(root->right);
}

4.再附上计算所有叶子的代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int sumOfLeftLeaves(struct TreeNode* root){
    
    if(root->left==NULL&&root->right==NULL){
       return root->val;
    } 
    return sumOfLeftLeaves(root->left)+sumOfLeftLeaves(root->right);
}

无左右子树,自然是叶子结点。

5.多说两句

写代码前,先抓准需求,理清思路再动手。

在我刷题的时候,uzi退役了,说不出的滋味卡在心头,为他遗憾,又为他松了口气。

没了uzi,我熟悉的LPL选手也已经没有了,梦回S3,我的LOL的信仰只剩下Faker了。

希望uzi能好好养伤,身体健康。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容