Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. class LinkedListNode
  2. attr_accessor :value, :next_node
  3.  
  4. def initialize(value, next_node=nil)
  5. @value = value
  6. @next_node = next_node
  7. end
  8. end
  9.  
  10. def print_values(list_node)
  11. if list_node
  12. print "#{list_node.value} --> "
  13. print_values(list_node.next_node)
  14. else
  15. print "nil\n"
  16. return
  17. end
  18. end
  19.  
  20. def reverse_list(list, previous=nil)#12 --> 99 --> 37 --> nil
  21. current_head = list.next_node
  22. list.next_node = previous
  23. if current_head
  24. reverse_list(current_head, list)
  25. else
  26. list
  27. end
  28. end
  29.  
  30. node1 = LinkedListNode.new(37)
  31. node2 = LinkedListNode.new(99, node1)
  32. node3 = LinkedListNode.new(12, node2)
  33.  
  34. print_values(node3)
  35. revlist = reverse_list(node3)
  36. print_values(revlist)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement