迭代
java
| |
| |
| |
| class Solution { |
| public ListNode addTwoNumbers(ListNode l1, ListNode l2) { |
| ListNode p = l1; |
| ListNode q = l2; |
| ListNode result = new ListNode(); |
| ListNode o = result; |
| int carray = 0; |
| while(p!=null && q!=null){ |
| int sum = p.val + q.val + carray; |
| o.next = new ListNode(sum%10); |
| carray=sum/10; |
| p = p.next; |
| q = q.next; |
| o = o.next; |
| } |
| while(p!=null){ |
| int sum = carray + p.val; |
| o.next = new ListNode(sum%10); |
| carray = sum/10; |
| o = o.next; |
| p = p.next; |
| } |
| while(q!=null){ |
| int sum = carray + q.val; |
| o.next = new ListNode(sum%10); |
| carray = sum/10; |
| o = o.next; |
| q = q.next; |
| } |
| if(carray==1){ |
| o.next = new ListNode(1); |
| } |
| return result.next; |
| } |
| } |
C++
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class Solution { |
| public: |
| ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { |
| ListNode* result = new ListNode(); |
| ListNode* res = result; |
| ListNode* p = l1; |
| ListNode* q = l2; |
| int carray = 0; |
| int sum = 0; |
| while(p!=nullptr && q !=nullptr){ |
| sum = p->val + q->val + carray; |
| carray = sum/10; |
| res->next = new ListNode(sum%10); |
| p = p->next; |
| q = q->next; |
| res = res->next; |
| } |
| while(p!=nullptr){ |
| sum = p->val + carray; |
| carray = sum/10; |
| res->next = new ListNode(sum%10); |
| res = res->next; |
| p = p->next; |
| } |
| while(q!=nullptr){ |
| sum = q->val + carray; |
| carray = sum/10; |
| res->next = new ListNode(sum%10); |
| res = res->next; |
| q = q->next; |
| } |
| if(carray!=0){ |
| res->next = new ListNode(carray); |
| } |
| return result->next; |
| } |
| }; |
递归
Java

| class Solution { |
| public ListNode addTwoNumbers(ListNode l1, ListNode l2) { |
| int total = l1.val + l2.val; |
| int next = total/10; |
| ListNode res = new ListNode(total%10); |
| if(l1.next!=null || l2.next!=null || next != 0){ |
| if(l1.next==null){ |
| l1 = new ListNode(0); |
| }else{ |
| l1 = l1.next; |
| } |
| if(l2.next==null){ |
| l2 = new ListNode(0); |
| }else{ |
| l2 = l2.next; |
| } |
| l1.val += next; |
| res.next = addTwoNumbers(l1,l2); |
| } |
| return res; |
| } |
| } |
C++
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class Solution { |
| public: |
| ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { |
| int sum = l1->val + l2->val; |
| int next = sum/10; |
| ListNode* res = new ListNode(sum%10); |
| if(l1->next!=nullptr || l2->next!=nullptr || next !=0){ |
| if(l1->next==nullptr){ |
| l1 = new ListNode(0); |
| }else{ |
| l1 = l1->next; |
| } |
| if(l2->next==nullptr){ |
| l2 = new ListNode(0); |
| }else{ |
| l2 = l2->next; |
| } |
| l1->val+=next; |
| res->next = addTwoNumbers(l1,l2); |
| } |
| |
| return res; |
| } |
| }; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗