JMChurch25 0 Newbie Poster

Hello,
almost done with the Sudoku Solver but dealing with a couple last glitches in the solve method that supposed to use a backtracking algorithm. It is printing out some weird values and outputs. I've got the program printing out the unsolved puzzle fine but the "solved" puzzle is nothing like the actual solution. Example:
The given puzzle:
6 8 . . . . . 5 .
. . . . . 5 . . .
. . 3 8 . . 2 6 .

1 . 7 . 2 . . . .
. . 9 5 . 8 6 . .
. . . . 1 . 7 . 2

. 2 1 . . 9 4 . .
. . . 4 . . . . .
. 3 . . . . . 2 8

Solved:
6 8 2 7 9 3 1 5 4
7 1 4 2 6 5 8 9 3
5 9 3 8 4 1 2 6 7

1 6 7 3 2 4 5 8 9
2 4 9 5 7 8 6 3 1
3 5 8 9 1 6 7 4 2

8 2 1 6 3 9 4 7 5
9 7 5 4 8 2 3 1 6
4 3 6 1 5 7 9 2 8

Unsolved:

680000050
000005000
003800260
107020000
009508600
000010702
021009400
000400000
030000028

Solved:

682134957
000005000
413870260
107020000
009508600
000010702
021009400
000400000
030000028

Some of the values are right, but most of them are wrong. Here is the code I have for the solve method:

public boolean solve (int row, int col)
    {
        if (col == 9)
        {
             col = 0;
             row++;
        if(row++ == 9)
            return true;
        }
        
        if (puzzle[row][col] != 0)//skips filled cells
            return(solve(row, col+1));
        
        for(int num = 1; num <= 9; ++num)
        {
            if(isLegal(row, col, num))
            {
                puzzle[row][col] = num;
                bsteps++;
                if(solve(row, col+1))
                    bsteps++;
                    return true;
            }
                
        }
            puzzle[row][col]=0;
            return false;
          
    }

Thanks for the help.....