标签:c++
/**
* 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) { ListNode *p=l1,*q=l2; int value1,t=0; value1=p->val+q->val; t=value1/10; p->val=value1%10; while(p->next!=NULL && q->next!=NULL) { p=p->next; q=q->next; value1=p->val+q->val+t; t=value1/10; p->val=value1%10; } if(t==1) { if(p->next!=NULL && q->next==NULL) { while(p->next!=NULL && t==1) { p=p->next; value1=p->val+t; t=value1/10; p->val=value1%10; } if(t==1) { ListNode *L=new ListNode(t); p->next=L; } } else if(p->next==NULL && q->next!=NULL) { p->next=q->next; while(p->next!=NULL && t==1) { p=p->next; value1=p->val+t; t=value1/10; p->val=value1%10; } if(t==1) { ListNode *L=new ListNode(t); p->next=L; } } else if(p->next==NULL && q->next==NULL) { ListNode *L=new ListNode(t); p->next=L; } } else if(t==0) { if(p->next==NULL && q->next!=NULL) { p->next=q->next; } } return l1; } };
//以下是错误的代码
/** * 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) { ListNode *p=l1,*q=l2; int value1,t=0; value1=p->val+q->val; t=value1/10; p->val=value1%10; while(p->next!=NULL && q->next!=NULL) { p=p->next; q=q->next; value1=p->val+q->val+t; t=value1/10; p->val=value1%10; } if(t==1) { if(p->next!=NULL && q->next==NULL) { while(p->next!=NULL && t==1) { p=p->next; value1=p->val+t; t=value1/10; p->val=value1%10; } if(t==1) { ListNode L(t); p->next=&L; } } else if(p->next==NULL && q->next!=NULL) { p->next=q->next; while(p->next!=NULL && t==1) { p=p->next; value1=p->val+t; t=value1/10; p->val=value1%10; } if(t==1) { ListNode L(t); p->next=&L; } } else if(p->next==NULL && q->next==NULL) { ListNode L(t); p->next=&L; } } else if(t==0) { if(p->next==NULL && q->next!=NULL) { p->next=q->next; } } return l1; } };
错误原因:
看出来差别了么?就是一个用了结构的指针,一个是结构变量。最后导致了莫名其妙的错误,花费了我上十个小时,这是为什么呢?难道是因为一个位于堆、一个位于栈里?
标签:c++
原文地址:http://yuzwei.blog.51cto.com/10126623/1654527