input: Write a python function to check if a linked list is a palindrome.
  assert check_reverse(Node(1).next=Node(2).next=Node(2).next=Node(1))==True
  assert check_reverse(Node(1).next=Node(2).next=Node(3).next=Node(2).next=Node(1))==True
  assert check_reverse(Node(1).next=Node(2).next=Node(3).next=Node(4))==False
output: class Node:
      def __init__(self, value):
          self.value = value
          self.next = None
  
  def check_reverse(head):
      # Find the middle of the linked list
      slow = fast = head
      while fast and fast.next:
          slow = slow.next
          fast = fast.next.next
  
      # Reverse the second half of the linked list
      prev = None
      while slow:
          next_node = slow.next
          slow.next = prev
          prev = slow
          slow = next_node
  
      # Compare the first and second half nodes
      left, right = head, prev
      while right:  # Only need to compare till right half
          if left.value != right.value:
              return False
          left = left.next
          right = right.next
  
      return True