-
Notifications
You must be signed in to change notification settings - Fork 0
/
AddTwoNumbers.java
36 lines (36 loc) · 1012 Bytes
/
AddTwoNumbers.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* Problem: https://leetcode.com/problems/add-two-numbers
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int carry=0, sum=0;
ListNode l3, answer = new ListNode(0);
l3 = answer;
while (l1 != null || l2 != null) {
sum = 0;
sum += (l1 == null) ? 0:l1.val;
sum += (l2 == null) ? 0:l2.val;
sum += carry;
l3.val = sum%10;
carry = sum/10;
l1 = (l1 == null) ? l1:l1.next;
l2 = (l2 == null) ? l2:l2.next;
if (l1==null && l2==null)
l3.next = null;
else {
l3.next = new ListNode(0);
l3 = l3.next;
}
}
if (carry != 0) {
l3.next = new ListNode(carry);
}
return answer;
}
}