input: Write a python function to find the fifth element from the end in a linked list.
  assert find_fifth_from_end(Node(1)) is None
  
  n1 = Node(1)
  n2 = Node(2)
  n3 = Node(3)
  n4 = Node(4)
  n5 = Node(5)
  n6 = Node(6)
  n7 = Node(7)
  n1.next = n2
  n2.next = n3
  n3.next = n4
  n4.next = n5
  n5.next = n6
  n6.next = n7
  assert n1.find_fifth_from_end() == 3
  
  n1 = Node(1)
  n2 = Node(2)
  n3 = Node(3)
  n4 = Node(4)
  n5 = Node(5)
  n6 = Node(6)
  n1.next = n2
  n2.next = n3
  n3.next = n4
  n4.next = n5
  n5.next = n6
  assert n1.find_fifth_from_end() == 1
output: class Node:
      def __init__(self, value=0, next=None):
          self.value = value
          self.next = next
  
      def find_fifth_from_end(self):
          first_pointer = self
          second_pointer = self
          
          # Move second_pointer 5 steps ahead
          for _ in range(5):
              if not second_pointer:
                  return None
              second_pointer = second_pointer.next
          
          # Move both pointers until second_pointer reaches the end
          while second_pointer:
              first_pointer = first_pointer.next
              second_pointer = second_pointer.next
          
          return first_pointer.value if first_pointer else None