SQL-LABS
阿新 • • 發佈:2021-12-21
1.Go
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { if l1==nil && l2==nil{ return nil } if l1==nil && l2!=nil{ return l2 } if l1!=nil && l2==nil{ return l1 } ans:=&ListNode{Val:0} tmp:=ans add,sum,val:=0,0,0 for l1!=nil && l2!=nil{ sum=add+l1.Val+l2.Val add,val=sum/10,sum%10 tmp.Next=&ListNode{Val: val} tmp=tmp.Next l1=l1.Next l2=l2.Next } if l1==nil{ for l2!=nil{ sum=add+l2.Val add,val=sum/10,sum%10 tmp.Next=&ListNode{Val: val} tmp=tmp.Next l2=l2.Next } } if l2==nil{ for l1!=nil{ sum=add+l1.Val add,val=sum/10,sum%10 tmp.Next=&ListNode{Val: val} tmp=tmp.Next l1=l1.Next } } if add!=0{ tmp.Next=&ListNode{Val: add} return ans.Next } return ans.Next }
C++中的next 和val 對應Go中Next 和Val
Go中只有. 沒有->說法
C++中 LIstNode * ans=new ListNode(0);
Go 中 ans:=&ListNode{Val: 0}
2.C++
class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if (l1==NULL && l2==NULL) return NULL; if (l1!=NULL && l2==NULL) return l1; if (l1==NULL && l2!=NULL) return l2; ListNode * ans=new ListNode(); ListNode *tmp=ans; int add=0; int sum,val; while(l1!=NULL && l2!=NULL){ sum=add+l1->val+l2->val; add=sum/10; val=sum%10; tmp->next=new ListNode(val); tmp=tmp->next; l1=l1->next; l2=l2->next; } if (l1==NULL){ while(l2!=NULL){ sum=add+l2->val; add=sum/10; val=sum%10; tmp->next=new ListNode(val); tmp=tmp->next; l2=l2->next; } } if (l2==NULL){ while(l1!=NULL){ sum=add+l1->val; add=sum/10; val=sum%10; tmp->next=new ListNode(val); tmp=tmp->next; l1=l1->next; } } if (add!=0){//判斷下進位 tmp->next=new ListNode(add); return ans->next; } return ans->next; } };