# LintCode-矩阵的之字型遍历

#### 容易 矩阵的之字型遍历

``````[
[1, 2,  3,  4],
[5, 6,  7,  8],
[9,10, 11, 12]
]
``````

``````public class Solution {
/**
* @param matrix: a matrix of integers
* @return: an array of integers
*/
public int[] printZMatrix(int[][] matrix) {
if(matrix == null){
return null;
}
int m = matrix[0].length;
int n = matrix.length;
int i = 0;
int count = n*m;
int [] re = new int [count];
int a=0,b=0;
re[i++] = matrix[a][b];
if(n == 1){
return matrix[0];
}
if(m == 1){
int [] ree = new int [n];
for(int k =0; k<n;k++){
ree[k] = matrix[k][0];
}
}
while(i <count){
//斜向上遍历
while(a > 0 && b+1 < m){
re[i++] = matrix[--a][++b];
}
//斜向上结束，试着往右或者下移动
if(b+1 < m){
re[i++] = matrix[a][++b];
}else{
if(a+1 <n){
re[i++] = matrix[++a][b];
}
}
//斜向下遍历
while(a+1 < n && b > 0){
re[i++] = matrix[++a][--b];
}
//斜向下遍历结束，试着往下或者往右移动
if(a+1 < n){
re[i++] = matrix[++a][b];
}else{
if(b + 1 <m){
re[i++] = matrix[a][++b];
}
}

}
return re;
}
}
``````

原文作者：Z字形编排问题
原文地址: https://blog.csdn.net/Sunny_Ran/article/details/49722099
本文转自网络文章，转载此文章仅为分享知识，如有侵权，请联系博主进行删除。