Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
You should return the following matrix:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
基本没什么坑,注意进位和一些特殊情况就好了
AC 20MS
/**
* Definition for singly-linked list.
*/
typedef struct ListNode Node;
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
struct ListNode* p1 = l1;
struct ListNode* p2 = l2;
struct ListNode* ptemp =NULL;
struct ListNode* ptail =NULL;
struct ListNode* phead = NULL;//(struct ListNode*)malloc(sizeof(ListNode));
int base,s;
int prevoius_s =0;
while(p1 !=NULL || p2 !=NULL||prevoius_s)
{
ptemp = (struct ListNode*)malloc(sizeof(Node));
if(phead == NULL)
{
phead = ptemp;
}
base = 0;
s = 0;
if(p1 !=NULL)
{
base += p1->val;
p1 = p1->next;
}
if(p2!=NULL)
{
base += p2->val;
p2 = p2->next;
}
base += prevoius_s;
if(base > 9)
{
base = base%10;
prevoius_s =1;
}
else
{
prevoius_s = 0;
}
ptemp->val = base;
ptemp->next = NULL;
if(ptail == NULL)
{
ptail = ptemp;
}
else{
ptail->next = ptemp;
ptail = ptemp;
}
}
return phead;
}