struct ListNode *plusAB( struct ListNode *a, struct ListNode *b ) {
struct ListNode node = {-1,NULL}, *tail = NULL;
int jw = 0;
tail = &node;
while( a != NULL || b != NULL || jw != 0 ) {
jw += a != NULL ? a->val : 0;
jw += b != NULL ? b->val : 0;
a = a != NULL ? a->next : a;
b = b != NULL ? b->next : b;
tail->next = (struct ListNode *) malloc( sizeof(*tail) );
tail->next->val = jw % 10; // 取余数.
tail->next->next = NULL;
tail = tail->next;
jw = jw / 10; // 取商.
}
return node.next;
}

京公网安备 11010502036488号