#+ANKI_DECK: study_deck_02 * TODO 2326. Spiral Matrix IV :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*2326. Spiral Matrix IV][2326. Spiral Matrix IV]] :END: You are given two integers ~m~ and ~n~, which represent the dimensions of a matrix. You are also given the ~head~ of a linked list of integers. Generate an ~m x n~ matrix that contains the integers in the linked list presented in *spiral* order *(clockwise)*, starting from the *top-left* of the matrix. If there are remaining empty spaces, fill them with ~-1~. Return /the generated matrix/. *Example 1:* #+begin_src Input: m = 3, n = 5, head = [3,0,2,6,8,1,7,9,4,2,5,5,0] Output: [[3,0,2,6,8],[5,0,-1,-1,1],[5,2,4,9,7]] Explanation: The diagram above shows how the values are printed in the matrix. Note that the remaining spaces in the matrix are filled with -1. #+end_src *Example 2:* #+begin_src Input: m = 1, n = 4, head = [0,1,2] Output: [[0,1,2,-1]] Explanation: The diagram above shows how the values are printed from left to right in the matrix. The last space in the matrix is set to -1. #+end_src *Constraints:* - ~1 <= m, n <= 10^{5}~ - ~1 <= m * n <= 10^{5}~ - The number of nodes in the list is in the range ~[1, m * n]~. - ~0 <= Node.val <= 1000~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python :lc-problem 2326 :lc-lang python3 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def spiralMatrix(self, m: int, n: int, head: Optional[ListNode]) -> List[List[int]]: #+end_src ** TODO C++ #+begin_src cpp :lc-problem 2326 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: vector> spiralMatrix(int m, int n, ListNode* head) { } }; #+end_src