您的位置:首页 > 其它

LeetCode 404 Sum of Left Leaves

2017-07-29 14:54 375 查看
题目:

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.

题目链接
题意:

给一棵二叉树,让你把树上所有左叶子结点的值求和,返回总和。

采用先序遍历的方式,当判断左子节点的时候,判断其是否为叶子结点,假如它是叶子结点,就直接将其val加到ans中,否则递归搜索左子节点,对于右子节点,只要判断是否为空,继续搜索即可。

注意判断当前的node是否为空。

代码如下:

class Solution {
public:
int ans = 0;
bool isLeaves(TreeNode *node) {
return !node->left && !node->right;
}
void dfs(TreeNode *node) {
if (node->left) {
if (isLeaves(node->left)) {
ans += node->left->val;
}
else {
dfs(node->left);
}
}
if (node->right) {
dfs(node->right);
}
}
int sumOfLeftLeaves(TreeNode* root) {
if (root)
dfs(root);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: