还没有做完,验证完,先保存下;
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* addTwoNumbers(struct ListNode* L1, struct ListNode* L2){
int flag1 = 0;
int flag2 = 0;
struct ListNode* ret = (struct ListNode *)malloc(sizeof(struct ListNode));
memset(&ret, 0, sizeof(struct ListNode));
struct ListNode* cur = ret;
do{
int tmp = 0;
if(L1 != NULL && L2 != NULL)
{
tmp = L1->val + L2->val + flag1;
} else if(L1 == NULL)
{
tmp = L2->val + flag1;
} else if(L2 == NULL)
{
tmp = L1->val + flag1;
} else {
tmp = flag1;
}
if(tmp >= 10)
{
tmp = tmp - 10;
flag2 = 1;
}
cur->val = tmp;
cur->next = NULL;
flag1 = flag2;
flag2 = 0;
L1 = L1->next;
L2 = L2->next;
struct ListNode *one = (struct ListNode*)malloc(sizeof(struct ListNode));
memset(one, 0, sizeof(struct ListNode));
cur->next = one;
cur = cur->next;
}while ((!L1->next) &&(!L2->next));
free(cur);
}