def palindrome?(head) stack = [] slow_runner = fast_runner = head while !fast_runner.nil? && !fast_runner.next.nil? stack.push(slow_runner.val) fast_runner = fast_runner.next.next slow_runner = slow_runner.next end unless fast_runner.nil? slow_runner = slow_runner.next end until slow_runner.nil? temp = stack.pop return false unless slow_runner.val == temp slow_runner = slow_runner.next end true end