给定两个链表代表两个非负数,求这两个数的和 (2 -> 4 -> 3) + (5 -> 6 -> 4) 因为 342 + 465 = 807 所以返回 7 -> 0 -> 8
注意进位!
class ListNode { public: int val; ListNode *next; ListNode() {} ListNode(int val1) : val(val1), next(NULL) { } }; ListNode add_two_nums(ListNode *l1, ListNode *l2) { ListNode ret(0); ListNode *current = &ret; int carry = 0; while (l1 && l2) { int dig=l1->val +l2-> val +carry; int val=dig; carry=dig/10; ListNode *newNode=new ListNode(val); current->next=newNode; current=current->next; l1=l1->next; l2=l2->next; } if(l2){ l1=l2; } while(l1){ int val=(l1->val+carry); carry=(l1->val+carry)/10; current->next=new ListNode(val); current=current->next; l1=l1->next; } // do not forget! if(carry!=0){ current->next=new ListNode(carry); } return ret; }