十七
十七
Published on 2022-03-05 / 124 Visits
0
0

leetcode404. 左叶子之和

leetcode404. 左叶子之和

class Solution {
public:
    bool isLeafNode(TreeNode * node){
        return !node->left&&!node->right;
    }
    int dfs(TreeNode* root){
        int ans=0;
        //左子树不为空,若左子树是叶子节点就加上左子树的值,若不是叶子节点继续dfs计算左子树
        if(root->left)ans+=isLeafNode(root->left)?root->left->val:dfs(root->left);
        //当前节点右子树不空且不是叶子节点时,dfs计算右子树的左节点
        if(root->right&&!isLeafNode(root->right))ans+=dfs(root->right);
        return ans;
    }
    int sumOfLeftLeaves(TreeNode* root) {
        return root ? dfs(root) : 0;
    }
};


Comment