/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { int c = 0; ListNode *result = new ListNode(0); ListNode *p = result; int tmp; do{ tmp = 0; tmp += c; if(l1){ tmp += l1->val; l1 = l1->next; } if(l2){ tmp += l2->val; l2 = l2->next; } c = tmp / 10; p->val = tmp % 10; if(c!=0 || l1!=NULL || l2!=NULL){ p->next = new ListNode(0); p = p->next; } else break; }while(1); return result; } };
折腾了半天,希望极可能简洁吧。总算出来了。