swap()只能改变指针内容,而对于结构体,链表等数据类型,无法改变上一级指向的内容。
swap对于这种类型的数据只能在链首使用
两个指针的定义int *p1,*p2。
容易忽视p2的星。
链表创建一个head结构体返回head->next比创建head指针指向操作链表,写程序要简洁很多
class Solution {
public:
ListNode * addTwoNumbers(ListNode* l1, ListNode* l2) {
int flag=0;
ListNode head(0),*tail=&head;
while(l1||l2||flag){
int tmp=0;
tmp+=l1?l1->val:0;
tmp+=l2?l2->val:0;
tmp+=flag;
flag=tmp/10;
tmp%=10;
ListNode *next=l1?l1:l2;
if(!next) next= new ListNode(tmp);
else next->val=tmp;
tail->next=next;
tail=tail->next;
if(l1) l1=l1->next;
if(l2) l2=l2->next;
}
return head.next;
}
};