public static void Main()
ListNode l = new ListNode(2);
l.next = new ListNode(4);
l.next.next = new ListNode(3);
ListNode k = new ListNode(5);
k.next = new ListNode(6);
k.next.next = new ListNode(4);
var result = AddTwoNumbers(l, k);
static ListNode AddTwoNumbers(ListNode l1, ListNode l2) {
int sum = 0, remainder = 0, val = 0;
ListNode result = new ListNode(0);
ListNode current = result;
while(l1 != null || l2 != null)
var x = (l1 != null ? l1.val : 0);
var y = (l2 != null ? l2.val : 0);
sum = (remainder + x + y);
remainder = (sum >= 10 ? 1 : 0);
val = (sum >= 10 ? (sum - 10) : sum);
current.next = new ListNode(val);
Console.WriteLine(">> result.next.val = {0} and current.val = {1}", result.next.val, current.val);
current.next = new ListNode(remainder);
static void Print(ListNode l)
Console.WriteLine(l.val);