File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * struct ListNode {
4+ * int val;
5+ * ListNode *next;
6+ * ListNode() : val(0), next(nullptr) {}
7+ * ListNode(int x) : val(x), next(nullptr) {}
8+ * ListNode(int x, ListNode *next) : val(x), next(next) {}
9+ * };
10+ */
11+ class Solution {
12+ public:
13+ vector<vector<int>> spiralMatrix(int n, int m, ListNode* head) {
14+ vector<vector<int>> ans(n,vector<int> (m,-1));
15+ int left=0;
16+ int right=m-1;
17+ int top=0;
18+ int bottom=n-1;
19+ ListNode* temp=head;
20+ while (top<=bottom && left<=right){
21+ for(int i=left;i<=right && temp;i++){
22+ ans[top][i]=temp->val;
23+ temp=temp->next;
24+ }
25+ top++;
26+ for(int i=top;i<=bottom && temp;i++){
27+ ans[i][right]=temp->val;
28+ temp=temp->next;
29+ }
30+ right--;
31+ if(top<=bottom){
32+ for(int i=right;i>=left && temp;i--){
33+ ans[bottom][i]=temp->val;
34+ temp=temp->next;
35+ }
36+ bottom--;
37+ }
38+ if(left<=right){
39+ for(int i=bottom;i>=top && temp;i--){
40+ ans[i][left]=temp->val;
41+ temp=temp->next;
42+ }
43+ left++;
44+ }
45+ }
46+ return ans;
47+ }
48+ };
You can’t perform that action at this time.
0 commit comments