File tree Expand file tree Collapse file tree 2 files changed +33
-17
lines changed Expand file tree Collapse file tree 2 files changed +33
-17
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ require 'English'
55::Gem ::Specification . new do |s |
66 s . required_ruby_version = '>= 3.0'
77 s . name = 'leetcode-ruby'
8- s . version = '7.0.9'
8+ s . version = '7.0.9.1 '
99 s . license = 'MIT'
1010 s . files = ::Dir [ 'lib/**/*.rb' ] + %w[ README.md ]
1111 s . executable = 'leetcode-ruby'
Original file line number Diff line number Diff line change 55# @param {ListNode} l2
66# @return {ListNode}
77def add_two_numbers445 ( l1 , l2 )
8- first_num = [ ]
9- while l1
10- first_num << l1 . val
11- l1 = l1 . next
12- end
8+ r1 = reverse_list_node ( l1 )
9+ r2 = reverse_list_node ( l2 )
10+ sum = ::ListNode . new ( 0 )
11+ p = sum
12+ carry = 0
13+ while r1 || r2
14+ a = r1 . nil? ? 0 : r1 . val
15+ b = r2 . nil? ? 0 : r2 . val
16+ c = a + b + carry
17+
18+ p . next = ::ListNode . new ( c % 10 )
19+ p = p . next
20+ carry = c / 10
1321
14- second_num = [ ]
15- while l2
16- second_num << l2 . val
17- l2 = l2 . next
22+ r1 = r1 &.next
23+ r2 = r2 &.next
1824 end
1925
20- sum = ( first_num . join . to_i + second_num . join . to_i ) . to_s
26+ p . next = ::ListNode . new ( carry ) unless carry . zero?
27+
28+ reverse_list_node ( sum . next )
29+ end
30+
31+ private
2132
22- result = ::ListNode . new ( 0 )
23- curr = result
24- sum . each_char do |c |
25- curr . next = ::ListNode . new ( c . to_i )
26- curr = curr . next
33+ # @param {ListNode} head
34+ # @return {ListNode}
35+ def reverse_list_node ( head )
36+ prev = nil
37+ curr = head
38+ while curr
39+ nxt = curr . next
40+ curr . next = prev
41+ prev = curr
42+ curr = nxt
2743 end
2844
29- result . next
45+ prev
3046end
You can’t perform that action at this time.
0 commit comments