404. Sum of Left Leaves

来源:互联网 发布:苹果5怎么用4g网络 编辑:程序博客网 时间:2024/04/30 21:39

Find the sum of all left leaves in a given binary tree.

Example:

    3   / \  9  20    /  \   15   7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

         自己想半天递归没想出来,先用老办法轮一遍

class Solution {public:        int cnt = 0;    int sumOfLeftLeaves(TreeNode* root) {        if(!root)        return 0;        queue<TreeNode*> q;        q.push(root);        int ans = 0;        while(!q.empty())        {            int n = q.size();            for(int i = 0; i < n; ++i)            {                TreeNode* p = q.front();                if(p->left)                q.push(p->left);                if(p->right)                q.push(p->right);                if(p->left != NULL && p->left->left == NULL && p->left->right == NULL)                ans += p->left->val;                q.pop();            }        }        return ans;    }};


    好吧 递归瞬间又想出来了。

class Solution {public:        int ans = 0;    int sumOfLeftLeaves(TreeNode* root) {        if(!root)        return 0;        if(root->left != NULL && root->left->left == NULL && root->left->right == NULL)        ans += root->left->val;        sumOfLeftLeaves(root->left);        sumOfLeftLeaves(root->right);        return ans;    }};





0 0
原创粉丝点击