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