You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
public class AddTwoNumbers { public static void main(String[] args){ ListNode l1= new ListNode(1); l1.next = new ListNode(8); ListNode l2= new ListNode(0); addTwoNumbers(l1, l2); } public static ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode result = new ListNode(0); ListNode frontNode = result; double result1 = createData(l1); double result2 = createData(l2); long result3 = (long)(result1 + result2); String resultString = String.valueOf(result3); char[] a = resultString.toCharArray(); result.val = a[a.length-1]-'0'; for(int i = a.length-2; i>=0; i--){ ListNode l = new ListNode(a[i]-'0'); frontNode.next = l; frontNode = l; } return result; } private static double createData(ListNode node){ double result = 0; ListNode tempNode = node; int i =1; result = result + tempNode.val; while(tempNode.next != null){ tempNode = tempNode.next; result = result + Math.pow(10,i)* tempNode.val; i++; } return result; } } class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }