有没有一种可能,力扣也有测试误诊断的时候?
/**
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
ListNode *h,*p=new ListNode();
h=p;
int sum=0,o=0;
if((l1)&&(l2))
sum=l1->val+l2->val;
else if(l1)
sum=l1->val;
else if(l2)
sum=l2->val;
if(sum>9)
{
sum-=10;
o=1;
}
p->val=sum;
while((l1->next)||(l2->next)||o==1)
{
p->next=new ListNode(o);
p=p->next;
l1=l1->next;
l2=l2->next;
if((l1)&&(l2))
sum=o+l1->val+l2->val;
else if(l1)
sum=o+l1->val;
else if(l2)
sum=o+l2->val;
else
sum=1;
o=0;
if(sum>9)
{
sum-=10;
o=1;
}
p->val=sum;
}
return h;
}
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* res=new ListNode();
ListNode* prev=res;
int jw = 0;
ListNode* p1 = l1;
ListNode* p2 = l2;
//ListNode* p = nullptr;
while (p1 != nullptr && p2 != nullptr) {
ListNode* ptmp;
int n = p1->val + p2->val + jw;
jw = n / 10;
n = n % 10;
ptmp = new ListNode(n);
prev->next=ptmp;
prev=ptmp;
p1 = p1->next;
p2 = p2->next;
}
while (p1 != nullptr)
{
int n = p1->val + jw;
jw = n / 10;
n = n % 10;
ListNode* ptmp = new ListNode(n);
prev->next = ptmp;
prev=ptmp;
p1 = p1->next;
}
while (p2 != nullptr) {
int n = p2->val + jw;
jw = n / 10;
n = n % 10;
ListNode* ptmp = new ListNode(n);
prev->next = ptmp;
prev = ptmp;
p2 = p2->next;
}
if (jw > 0) {
ListNode* ptmp = new ListNode(jw);
prev->next = ptmp;
}
return res->next;
}
};
else
{
sum=1;
o=0;
}