Guest User

Untitled

a guest
Jul 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. class LinkedListNode
  2.  
  3. attr_accessor :value, :next_node
  4.  
  5. def initialize(value, next_node=nil)
  6. @value = value
  7. @next_node = next_node
  8. end
  9. end
  10.  
  11. def print_values(list_node)
  12.  
  13. if list_node
  14. print "#{list_node.value} --> "
  15. print_values(list_node.next_node)
  16. else
  17. print "nil\n"
  18. return
  19. end
  20. end
  21.  
  22. class Stack
  23. attr_reader :data
  24.  
  25. def initialize
  26. @data = nil
  27. end
  28.  
  29. def push(value)
  30. @data << (value)
  31. end
  32.  
  33. def pop
  34. value = @data.value
  35. @data = @data.next_node
  36. value
  37. end
  38. end
  39.  
  40. def reverse_list(list, previous=nil)
  41.  
  42. current_head = list.next_node
  43. list.next_node = previous
  44.  
  45. if current_head
  46. reverse_list(current_head, list)
  47. else
  48. list
  49. end
  50. end
  51.  
  52. node1 = LinkedListNode.new(37)
  53. node2 = LinkedListNode.new(99, node1)
  54. node3 = LinkedListNode.new(12, node2)
  55.  
  56. print_values(node3)
  57.  
  58. puts "-------"
  59.  
  60. revlist = reverse_list(node3)
  61.  
  62. print_values(revlist)
Add Comment
Please, Sign In to add comment