addTwoNumbers
大神的代码好短,自己写的120多行=_= 各种判断
ListNode *f(ListNode *l1, ListNode *l2) { ListNode *p1 = l1; ListNode *p2 = l2; ListNode *res = new ListNode(0); ListNode *p3 = res; int sum = 0; while (p1 != NULL || p2 != NULL) { //这里用“或” sum /= 10; //进位 if (p1 != NULL) { //这样一来位数不同的就不用分开讨论了 sum += p1->val; p1 = p1->next; } if (p2 != NULL) { sum += p2->val; p2 = p2->next; } p3->next = new ListNode(sum % 10); //不用新建指针 p3 = p3->next; } if (sum >= 10) { p3->next = new ListNode(1); } return res->next; //这样就省了不少讨论 }