使用数组方法反转LinkedList

所以,我正在进行一项赋值,其中LinkedListNode类生成一个链表并将值打印给用户。 我应该做的是创建一个Stack类来“推”,“弹出”,并反转链表。 问题是,我们无法使用.push,.pop或其他任何东西的数组方法。

我一直在思考并试图查找一天内该做什么,并且不知道从哪里开始。 有人可以指出我正确的方向,只是让推动方法开始,所以我可以获得一些牵引力,也许可以接受?

给出的LinkedListNode类:

class LinkedListNode attr_accessor :value, :next_node def initialize(value, next_node=nil) @value = value @next_node = next_node end end 

给出Stack类的骨架:

 class Stack attr_reader :data def initialize @data = nil end # Push an item onto the stack def push(element) # IMPLEMENT ME! end # Pop an item off the stack. # Remove the last item that was pushed onto the # stack and return it to the user def pop # IMPLEMENT ME end end 

我不是想直接问答案,我只是想不出去哪里。 预先感谢您的任何帮助!

您可以使用Linked List数据类型而不是数组来实现Stack。 我相信这样的事情会起作用:

 def push(element) if data.nil? data = LinkedListNode.new(element, nil) else data = LinkedListNode.new(element, data) end end def pop # grab the top piece of data popped = data.value # shift the data data = data.next_node end