リンクリストから最後のノードを取り除くための 'pop'メソッドを作成しました。しかし、私が受け取っている問題は、ノードを削除していないということです。ノード内のデータを削除する必要があるということだけです。Rubyの 'pop'メソッド
私はテスト駆動型開発を使用しています。テストは 'assert_equal "blop"、list.popと書かれています。 "blop"は最後のノードの値です。私に私の方法を教えてもらえれば素晴らしいですが、それでもノードは削除されません。
def pop
@count -= 1
return_string = ""
current_node = @head
until current_node.next_node == nil
current_node = current_node.next_node
end
return_string << current_node.data + " "
return_string.strip
current_node.next_node = Node.new(data)
end
私の質問は、削除されているものの値を返すだけでなく、リンクされたリストから値を削除することです。そのループが終了すると
Rubyでは論理的に間違っているのは 'nil'と' false'だけなので、あなたのリストで文字通り 'false'を期待しているのでなければ、' if current_node.next_node'が表現する方法ですそれ。おそらく 'current_node && = current_node.next_node'を実行することもできます。 – tadman
あなたの質問は何ですか? – sawa