A simple but efficient sudoku solver that uses dancing links to implement Algorithm X.
Input:
7......5..5.98472383..2...9.79.58.4...........6.14.97.5...3..94126495.8..4......1
Output:
+-------+-------+-------+
| 7 9 2 | 3 1 6 | 4 5 8 |
| 6 5 1 | 9 8 4 | 7 2 3 |
| 8 3 4 | 5 2 7 | 6 1 9 |
+-------+-------+-------+
| 3 7 9 | 2 5 8 | 1 4 6 |
| 4 1 5 | 7 6 9 | 8 3 2 |
| 2 6 8 | 1 4 3 | 9 7 5 |
+-------+-------+-------+
| 5 8 7 | 6 3 1 | 2 9 4 |
| 1 2 6 | 4 9 5 | 3 8 7 |
| 9 4 3 | 8 7 2 | 5 6 1 |
+-------+-------+-------+