|
| 1 | +# Definition for singly-linked list. |
| 2 | +# class ListNode |
| 3 | +# attr_accessor :val, :next |
| 4 | +# def initialize(val) |
| 5 | +# @val = val |
| 6 | +# @next = nil |
| 7 | +# end |
| 8 | +# end |
| 9 | + |
| 10 | +# @param {ListNode} l1 |
| 11 | +# @param {ListNode} l2 |
| 12 | +# @return {ListNode} |
| 13 | +def add_two_numbers(l1, l2) |
| 14 | + ll_common = ListNode.new(nil) |
| 15 | + ll = ll_common |
| 16 | + next_is_present = true |
| 17 | + while next_is_present |
| 18 | + next_is_present = l1&.next || l2&.next |
| 19 | + ll_val = l1&.val.to_i + l2&.val.to_i + ll&.val.to_i |
| 20 | + int = ll_val/10 |
| 21 | + |
| 22 | + ll.val = int > 0 ? ll_val - 10 : ll_val |
| 23 | + ll.next = ListNode.new(int) if next_is_present || int > 0 |
| 24 | + |
| 25 | + l1 = l1.next if l1 |
| 26 | + l2 = l2.next if l2 |
| 27 | + ll = ll.next |
| 28 | + end |
| 29 | + ll_common |
| 30 | +end |
0 commit comments