input: Write a python function to remove a node at a given index in a doubly linked list.
  assert linked_list.remove_at_index(0) == None
  linked_list = LinkedList()
  linked_list.append(1)
  linked_list.append(2)
  linked_list.append(3)
  assert linked_list.remove_at_index(1) == None
  assert linked_list.get_at_index(0) == 1
  assert linked_list.get_at_index(1) == 3
output: class Node:
      def __init__(self, data):
          self.data = data
          self.prev = None
          self.next = None
  
  class LinkedList:
      def __init__(self):
          self.head = None
      
      def append(self, data):
          new_node = Node(data)
          if not self.head:
              self.head = new_node
              return
          last = self.head
          while last.next:
              last = last.next
          last.next = new_node
          new_node.prev = last
      
      def get_at_index(self, index):
          current = self.head
          count = 0
          while current:
              if count == index:
                  return current.data
              count += 1
              current = current.next
          return None
  
      def remove_at_index(self, index):
          if not self.head:
              return None
          
          current = self.head
          count = 0
  
          if index == 0:
              self.head = current.next
              if self.head:
                  self.head.prev = None
              return None
  
          while current and count != index:
              current = current.next
              count += 1
          
          if not current:
              return None
  
          if current.next:
              current.next.prev = current.prev
  
          if current.prev:
              current.prev.next = current.next
  
          return None