LeetCode 404 Sum of Left Leaves

来源:互联网 发布:官方经纬度定位软件 编辑:程序博客网 时间:2024/05/22 08:26

题目:

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.
题目链接

题意:

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

采用先序遍历的方式,当判断左子节点的时候,判断其是否为叶子结点,假如它是叶子结点,就直接将其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;    }};


原创粉丝点击