1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
   | class Solution {      public int[][] floodFill(int[][] image, int sr, int sc, int newColor) {         int oldColor = image[sr][sc];         if (oldColor != newColor){             dfs(image,sr,sc,oldColor,newColor);         }
          return image;     }          private void dfs(int[][] image, int r, int c, int oldColor, int newColor){         if (image[r][c] == oldColor){             image[r][c] = newColor;                          if (r>=1){                 dfs(image,r-1,c,oldColor,newColor);             }             if (c>=1){                 dfs(image,r,c-1,oldColor,newColor);             }             if (r<image.length-1){                 dfs(image,r+1,c,oldColor,newColor);             }             if (c<image[0].length-1){                 dfs(image,r,c+1,oldColor,newColor);             }         }     } }
  |