Skip to content

Instantly share code, notes, and snippets.

@cjjuice
Created September 30, 2016 22:25
Show Gist options
  • Save cjjuice/e7bbd33ce3e8746cea792474564fcd00 to your computer and use it in GitHub Desktop.
Save cjjuice/e7bbd33ce3e8746cea792474564fcd00 to your computer and use it in GitHub Desktop.
# Definition for singly-linked list.
# class ListNode
# attr_accessor :val, :next
# def initialize(val)
# @val = val
# @next = nil
# end
# end
# @param {ListNode} l1
# @param {ListNode} l2
# @return {ListNode}
def add_two_numbers(l1, l2)
l1_array = []
l2_array = []
level1 = l1
level2 = l2
while level1
l1_array << level1.val
level1 = level1.next
end
while level2
l2_array << level2.val
level2 = level2.next
end
l1_num = l1_array.reverse.join.to_i
l2_num = l2_array.reverse.join.to_i
final_num = l1_num + l2_num
final_array = final_num.to_s.split("").map {|n| n.to_i}
root_node = ListNode.new(nil)
active_node = root_node
final_array.reverse.each_with_index do |n,i|
active_node.val = n
if i+1 < final_array.length
active_node.next = ListNode.new(nil)
active_node = active_node.next
end
end
return root_node
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment