From 1711b319be3ba7cffe1f48d1aa67ada3b3e4cebc Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 14 Apr 2024 20:23:17 +0200 Subject: [PATCH] =?UTF-8?q?cs:=20add=20=C2=AB404.=20Sum=20of=20Left=20Leav?= =?UTF-8?q?es=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- cs/sum-of-left-leaves.cs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 cs/sum-of-left-leaves.cs 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); +}