C# Simple code with explanation | Faster than 100.00%
From while Loop Keep Traversing Link List till the last\n2. If the values are non zero, keep adding them to sum -->  [else if (head.val != 0)]\n3. Just before e
1. From while Loop Keep Traversing Link List till the last\n2. If the values are non zero, keep adding them to sum -->  [` else if (head.val != 0)`]\n3. Just before encountering zero, assign this sum value to the new node of newly created Link list -->  [` if (head.next.val == 0)`]\n4. Also don\'t forget to reset this sum value to zero.\n\n```\n\n public ListNode MergeNodes(ListNode head) \n {           \t\n\t\tListNode MergeHead = new ListNode();\n\t\tListNode fast = MergeHead;\n\t\tif (head.next == null) return MergeHead;\n\t\tint sum = 0;\n\n\t\twhile (head != null && head.next != null)\n\t\t{\n\t\t\tif (head.next.val == 0)\n\t\t\t{\n\t\t\t\tsum = sum + head.val;      //Add Non zero value to sum just before encountering zero.\n\t\t\t\tfast.next = new ListNode(sum); \n\t\t\t\tfast = fast.next;\n\t\t\t\tsum = 0;\n\t\t\t}\n\t\t\telse if (head.val != 0)\n\t\t\t\tsum = sum + head.val;   //Keep Adding Non zero values to Sum\n\t\t\thead = head.next;\n\t\t}\n\t\treturn MergeHead.next;\n    }\n\t\n```
['Linked List']