def get_node_type(node)
      return :blank if node == BLANK_NODE

      case node.size
      when KV_WIDTH # [k,v]
        NibbleKey.decode(node[0]).terminate? ? :leaf : :extension
      when BRANCH_WIDTH # [k0, ... k15, v]
        :branch
      else
        raise InvalidNode, "node size must be #{KV_WIDTH} or #{BRANCH_WIDTH}"
      end
    end
def get_node_type(node)
      return :blank if node == BLANK_NODE

      case node.size
      when KV_WIDTH # [k,v]
        NibbleKey.decode(node[0]).terminate? ? :leaf : :extension
      when BRANCH_WIDTH # [k0, ... k15, v]
        :branch
      else
        raise InvalidNode, "node size must be #{KV_WIDTH} or #{BRANCH_WIDTH}"
      end
    end
get node type and content

 @param node [Array, BLANK_NODE] node in form of array, or BLANK_NODE

 @return [Symbol] node type