def insert_before_node(data, node)
      Node(data).tap do |new_node|
        new_node.next = node
        new_node.prev = node.prev
        if node.prev
          node.prev.next = new_node
        else
          @head = new_node
        end
        node.prev = new_node
        @length += 1
      end
    end
def insert_before_node(data, node)
      Node(data).tap do |new_node|
        new_node.next = node
        new_node.prev = node.prev
        if node.prev
          node.prev.next = new_node
        else
          @head = new_node
        end
        node.prev = new_node
        @length += 1
      end
    end
Inserts data before first matched node.data.

 == Returns:
 Inserted node