Problem :
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 :
2 -> 4 ->3
5-> 6 -> 4
7 ->10 ->7 (進位以後 : 7 ->0(留個位數就好，十位數1進位到右邊) -> 8(7+1))

Example 3 :
9 -> 9 -> 9 -> 9 -> 9 -> 9 -> 9
9 -> 9 -> 9 -> 9
18 -> 18 -> 18 ->18 -> 9 -> 9 -> 9

8 ->19 -> 18 -> 18 -> 9 -> 9 -> 9
8 -> 9 -> 19 -> 18 -> 9 -> 9 -> 9
8 -> 9 -> 9 -> 19 -> 9 -> 9 -> 9
8 -> 9 -> 9 -> 9 -> 10 -> 9 -> 9
8 -> 9 -> 9 -> 9 -> 0 -> 10 -> 9
8 -> 9 -> 9 -> 9 -> 0 -> 0 -> 10
8 -> 9 -> 9 -> 9 -> 0 -> 0 -> 0 -> 1

Thoughts :
`class Solution:    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:        result = ListNode(0)        node = result        tmp = 0        while l1 is not None or l2 is not None or tmp>0:            if l1 is not None:                tmp = tmp + l1.val                l1 = l1.next            if l2 is not None:                tmp = tmp + l2.val                l2 = l2.next            node.next = ListNode(tmp%10) #餘數            node = node.next            tmp = tmp//10 #商數        return result.next`