public static void Main()
var head = FillWith(9559,2125);
Console.WriteLine("REVERSE");
Console.WriteLine("Forward");
var forward = AddForward(head);
public static Node FillWith( int number, int number2)
if(number == 0) return null;
temp.Next = FillWith(number /10, number2/10);
public static void Print(Node n)
Console.WriteLine("{0} -- {1}",n.Digit, n.Digit1);
public static Node Add(Node n, int res =0)
if( n== null) return res == 0 ? null : new Node() { Digit = res};
var result = (n.Digit + n.Digit1 + res);
node.Next = Add(n.Next, result /10);
public static Node AddForward(Node n)
var head = AddInnerForward(n, out res);
var temp = new Node(){ Digit = res};
public static Node AddInnerForward(Node n, out int res)
var klk = n.Digit + n.Digit1;
node.Next = AddInnerForward(n.Next, out res);
var result = (n.Digit + n.Digit1 + res);