leetcode- Sum of Left Leaves

来源:互联网 发布:软件项目部署方案 编辑:程序博客网 时间:2024/06/06 01:15

Question:

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

Example:

   3   / \  9  20/  \15 7

There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

Solution:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int sumOfLeftLeaves(TreeNode* root) {        return mysum(root,0);    }    int mysum(TreeNode* root,int flag){        int res =  0;        if(!root){            return 0;        }         if(flag == 1 && !root->left && !root->right){            return root->val;        }        res += mysum(root->left,1);        res += mysum(root->right,2);        return res;    }};

总结:
easy难度,还是值得记录一下。
主要考察递归,明确两点:1、只有根节点的返回0

2、递归的基本条件是 叶子节点,这是两个条件,原函数中没有提供可标记左右的flag,所以自己重新写个函数,0为根节点,1表示左节点,2表示右节点

0 0