Last active 1751656852

AddTwoNumbers.java Raw
1// https://leetcode.com/problems/add-two-numbers
2class Solution {
3
4 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
5 BigInteger sumOfParsedNumbers = getReverseNumber(l1).add(getReverseNumber(l2));
6
7 ListNode newListNode = new ListNode();
8 ListNode currentlyReadingNode = newListNode;
9
10 char[] chars = String.valueOf(sumOfParsedNumbers).toCharArray();
11
12 for (int i = chars.length - 1; i >= 0; i--) {
13 currentlyReadingNode.val = Integer.parseInt(String.valueOf(chars[i]));
14
15 if (i > 0) {
16 currentlyReadingNode.next = new ListNode();
17 currentlyReadingNode = currentlyReadingNode.next;
18 }
19
20 }
21
22 return newListNode;
23 }
24
25 public BigInteger getReverseNumber(ListNode listNode) {
26 StringBuilder stringifiedNumber = new StringBuilder();
27
28 while (true) {
29 stringifiedNumber.append(listNode.val);
30
31 if (listNode.next != null) {
32 listNode = listNode.next;
33 } else {
34 break;
35 }
36 }
37
38 return new BigInteger(stringifiedNumber.reverse().toString());
39 }
40}
41
42class ListNode {
43
44 int val;
45 ListNode next;
46
47 ListNode() {
48 }
49
50 ListNode(int val) {
51 this.val = val;
52 }
53
54 ListNode(int val, ListNode next) {
55 this.val = val;
56 this.next = next;
57 }
58}
59