# 2. Add Two Numbers
You are given two **non-empty** linked lists representing two non-negative integers. The digits are stored in **reverse order**, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
**Example 1:**

```
Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [7,0,8]
Explanation: 342 + 465 = 807.
```
**Example 2:**
```
Input: l1 = [0], l2 = [0]
Output: [0]
```
**Example 3:**
```
Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Output: [8,9,9,9,0,0,0,1]
```
**Constraints:**
- The number of nodes in each linked list is in the range `[1, 100]`.
- `0 <= Node.val <= 9`
- It is guaranteed that the list represents a number that does not have leading zeros.
---
# Solution
Add two nodes with carrying, store the result into a new node, and make sure that carry passes to the next calculation.
These things should notice:
- The carrying from the summation from two nodes needs to pass to the next calculation.
- The different length between two nodes.
See the full [solution](https://github.com/Albert-Hu/leetcode/tree/master/solutions/1-50/2).
###### tags: `leetcode` `Medium` `Linked List` `Math`