NQueens Puzzle in Java
It took me a while to figure out your code. I have solved this problem a couple of times before, but found your code hard to read. In large part, because your variable names are misleading....


board is not a board, it is an array of int, with the value of the queen's column. I see the board as being a 2D matrix, you have it as a 1D array.
queens is not the number of queens, but the number of rows you have currently populated.


Then, your code is not as general-purpose as I was expecting.... Your code only ever finds solutions where the position (0,0) is a queen. Now, that's not to say that solutions with a queen there are wrong, but, are you sure? What if there is no solution with a queen in the corner....

If you know for sure there will be one, then you should at least document that..... if not, then it's a bug.

All in all, your code could use some more help to get it readable.