leetcode刷題集錦-兩數之和
阿新 • • 發佈:2018-11-28
/**
- Definition for singly-linked list.
- struct ListNode {
-
int val;
-
struct ListNode *next;
- };
*/
typedef struct ListNode ListNode;
struct ListNode* addTwoNumbers(ListNode* l, ListNode* s)
{
ListNode* getSizeAndCreateList(int array[]);
printf(“game start,LET US ADD\n”);
ListNode *head;
int a[100];
int i=0;
int j=0;
int temp=0;//記錄陣列的位置
int n=0;
int index =0;
//陣列初始化
for(n=0;n<100;n++)
{a[n]=0;}
while(l!=NULL) { a[i]=l->val; i=i+1; l=l->next; } while(s!=NULL) { temp=a[j]+s->val; printf("temp = %d\n",temp); a[j]=temp; index=j; while(a[index]>9) { a[index]=temp%10; temp=a[index+1]+temp/10; a[index+1]=temp; index++; } j++; s=s->next; } head=getSizeAndCreateList(a); return head;
}
ListNode* getSizeAndCreateList(int array[])
{
//頭插法建立連結串列
ListNode *head;
ListNode *s;
ListNode node;
head=NULL;
int i=99;
int j=0;
while(array[i]0)
{
if(i0)
{
break;
}
else{i=i-1;}
}
printf(“i=%d\n”,i);
for(j;j<=i;i–)
{
s=(ListNode *)malloc(sizeof(ListNode));
node.val=array[i];
s->val=node.val;
s->next=head;
head=s;
}
return head;
}
思路:
1、建立100大小的陣列 承載大數超出之後處理
2、接受兩個數字求和設定進位,在陣列中承載相加之後的數字之和
3、用首插法建立制定連結串列