/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
struct ListNode* re, p, t;
re = (struct ListNode *)malloc(sizeof(struct ListNode));
memset(re, 0, sizeof(struct ListNode));
p = re;
while((l1 != NULL) || (l2 != NULL)) {
int c = 0;
t = (struct ListNode *)malloc(sizeof(struct ListNode));
memset(p, 0, sizeof(struct ListNode));
p->next = t;
if (l1) {
c += l1->val;
l1 = l1->next;
}
if (l2) {
c+= l2->val;
l2 = l2->next;
}
if ((p->val += c) > 9) {
t->val = 1;
p->val %= 10;
}
if ((l1 == NULL) && (l2 == NULL) && (t->val == 0)) {
p->next = NULL;
free(t);
break;
}
p = t;
}
return(re);
}
Leetcode-2(链表)
最新推荐文章于 2024-09-18 11:04:20 发布