ListNode *addTwoNumbers(ListNode *l1, ListNode *l2)
{
int val1, val2, carry = 0;
int sum;
ListNode *s;
ListNode *node = NULL;
ListNode *head = (ListNode*)malloc(sizeof(ListNode));
//head->next = NULL;
s = head;
while ((l1!=NULL)||(l2!=NULL)||carry!=0)
{
val1 = (l1 == NULL ? 0 : l1->val);
val2 = (l2 == NULL ? 0 : l2->val);
node = (ListNode*)malloc(sizeof(ListNode));
sum = val1 + val2 + carry;
carry = sum / 10;
node->val = sum%10;
node->next = NULL;
s->next = node;
s = node;
l1 = (l1 == NULL ? NULL : l1->next);
l2 = (l2 == NULL ? NULL : l2->next);
}
s->next = NULL;
return head->next;
}
以上为solution中的代码。
这道题很简单,最主要还是自己的基础知识不扎实,对于建立结构体节点都不是很明了,做了挺长时间,锻炼了很多,不错!