diff --git a/cs/sum-of-left-leaves.cs b/cs/sum-of-left-leaves.cs new file mode 100644 index 0000000..4e29a28 --- /dev/null +++ b/cs/sum-of-left-leaves.cs @@ -0,0 +1,34 @@ +#if _MF_TEST +// Definition for a binary tree node. +public class TreeNode { + public int val; + public TreeNode left; + public TreeNode right; + public TreeNode(int val = 0, TreeNode left = null, TreeNode right = null) { + this.val = val; + this.left = left; + this.right = right; + } +} +#endif + +public class Solution { + private static bool IsLeaf(TreeNode node) + => node != null && node.left == null && node.right == null; + + private int Sum(TreeNode node, bool isLeft) { + if (node == null) { + return 0; + } + + if (isLeft && IsLeaf(node)) { + return node.val; + } + + return Sum(node.left, true) + Sum(node.right, false); + + } + + public int SumOfLeftLeaves(TreeNode root) + => Sum(root, false); +}