1. 程式人生 > 實用技巧 >C#列印單鏈表各節點資料的記憶體地址

C#列印單鏈表各節點資料的記憶體地址

輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字。
示例 1:

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
輸出:[1,2,3,6,9,8,7,4,5

示例2:

輸入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
輸出:[1,2,3,4,8,12,11,10,9,5,6,7]

限制:


    0 <= matrix.length <= 100
    0 <= matrix[i].length <= 100

思路:
在這裡插入圖片描述

int* spiralOrder(int** matrix, int matrixSize,
int* matrixColSize, int* returnSize){ if(!matrixSize){ *returnSize=0; return NULL; } int ColSize=*matrixColSize; *returnSize=matrixSize*ColSize; int num=*returnSize; int* val=(int*)malloc(sizeof(int)*num); int x=0,y=0; int count=0; int no; while
(count<num){ no=0; //左到右 while(no++<ColSize&&count<num){ val[count++]=matrix[y][x++]; } y++,x--,matrixSize--,no=0; //上到下 while(no++<matrixSize&&count<num){ val[count++]=matrix[y++][x]; } y--
,x--,ColSize--,no=0; //右到左 while(no++<ColSize&&count<num){ val[count++]=matrix[y][x--]; } x++,y--,matrixSize--,no=0; //下到上 while(no++<matrixSize&&count<num){ val[count++]=matrix[y--][x]; } ColSize--,y++,x++; } return val; }