input: Write a function to determine if it is possible to create a linked list using the given ListNode class definition by checking if each node's data is not `None` and if the `next` attribute points to another node properly. If all nodes conform to these rules, return True. If any node does not conform, return False. If the given list is empty, return True.
  
  assert is_valid_linked_list(ListNode(1, ListNode(2, ListNode(3)))) == True
  assert is_valid_linked_list(ListNode(1, ListNode(2, None))) == True
  assert is_valid_linked_list(ListNode(1, ListNode(None, ListNode(3)))) == False
  assert is_valid_linked_list(ListNode(None, ListNode(2, ListNode(3)))) == False
  assert is_valid_linked_list(None) == True
output: def is_valid_linked_list(node):
      while node:
          if node.data is None:
              return False
          node = node.next
      return True