<awangdev>Matrix Zigzag Traversal_1.java
public int[] printZMatrix(int[][] matrix) {
        int[] rst = null;
        if (matrix == null || matrix.length == 0 || matrix[0] == null || matrix[0].length == 0) {
        	return rst;
        }
        int n = matrix.length;
        int m = matrix[0].length;
        rst = new int[n * m];
        if (matrix.length == 1) {
            return matrix[0];
        }
        int i = 0, j = 0;
        int ind = 0;
        rst[ind] = matrix[i][j];
        ind++;
        while (ind < rst.length) {
    		if (j + 1 < m || i + 1 < n) {
    			if (j + 1 < m) j++;
    			else if (i + 1 < n) i++;
    			rst[ind++] = matrix[i][j];
    		}
    		while (j - 1 >= 0 && i + 1 < n) {
				rst[ind++] = matrix[++i][--j];
    		}
    		if (j + 1 < m || i + 1 < n) {
    			if (i + 1 < n) i++;
    			else if (j + 1 < m) j++;
    			rst[ind++] = matrix[i][j];
    		} 
    		while (j + 1 < m && i - 1 >= 0) {
    			rst[ind++] = matrix[--i][++j];
    		}
        }
        return rst;
    }
public int [ ] sample_funcname ( int [ ] [ ] var_0 ) {
  int [ ] var_2 = null ;
  if ( var_0 == null || var_0 . length == 0 || var_0 [ 0 ] == null || var_0 [ 0 ] . length == 0 ) {
    return var_2 ;
  }
  int var_5 = var_0 . length ;
  int var_6 = var_0 [ 0 ] . length ;
  var_2 = new int [ var_5 * var_6 ] ;
  if ( var_0 . length == 1 ) {
    return var_0 [ 0 ] ;
  }
  int var_8 = 0 , var_9 = 0 ;
  int var_10 = 0 ;
  var_2 [ var_10 ] = var_0 [ var_8 ] [ var_9 ] ;
  var_10 ++ ;
  while ( var_10 < var_2 . length ) {
    if ( var_9 + 1 < var_6 || var_8 + 1 < var_5 ) {
      if ( var_9 + 1 < var_6 ) var_9 ++ ;
      else if ( var_8 + 1 < var_5 ) var_8 ++ ;
      var_2 [ var_10 ++ ] = var_0 [ var_8 ] [ var_9 ] ;
    }
    while ( var_9 - 1 >= 0 && var_8 + 1 < var_5 ) {
      var_2 [ var_10 ++ ] = var_0 [ ++ var_8 ] [ -- var_9 ] ;
    }
    if ( var_9 + 1 < var_6 || var_8 + 1 < var_5 ) {
      if ( var_8 + 1 < var_5 ) var_8 ++ ;
      else if ( var_9 + 1 < var_6 ) var_9 ++ ;
      var_2 [ var_10 ++ ] = var_0 [ var_8 ] [ var_9 ] ;
    }
    while ( var_9 + 1 < var_6 && var_8 - 1 >= 0 ) {
      var_2 [ var_10 ++ ] = var_0 [ -- var_8 ] [ ++ var_9 ] ;
    }
  }
  return var_2 ;
}
