Let say count [ 0 ] = n1 , count [ 1 ] = n2 and count [ 2 ] = n3 now start traversing list from head node , 1 ) fill the list with 0 , till n1 > 0 2 ) fill the list with 1 , till n2 > 0 3 ) fill the list with 2 , till n3 > 0
while ( ptr != null ) { if ( count [ i ] == 0 ) i ++ ; else { ptr . data = i ; -- count [ i ] ; ptr = ptr . next ; } } }