55561bc4创建于 2022年12月27日历史提交
# Definition for singly-linked list.
# class ListNode
#     attr_accessor :val, :next
#     def initialize(val = 0, _next = nil)
#         @val = val
#         @next = _next
#     end
# end
# @param {ListNode} l1
# @param {ListNode} l2
# @return {ListNode}
def add_two_numbers(l1, l2)
    dummy_head = ListNode.new()
    curr = dummy_head
    
    carry = 0
    while l1 || l2 || carry > 0
        l1_val = l1 ? l1.val : 0
        l2_val = l2 ? l2.val : 0
        
        sum = l1_val + l2_val + carry
        ones = sum % 10
        carry = sum / 10

        curr.next = ListNode.new(ones)
        
        curr = curr.next
        l1 = l1.next if l1
        l2 = l2.next if l2
    end

    dummy_head.next
end