日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 445. 两数相加 II(链表大数加法)

發布時間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 445. 两数相加 II(链表大数加法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

給定兩個非空鏈表來代表兩個非負整數。數字最高位位于鏈表開始位置。它們的每個節點只存儲單個數字。將這兩數相加會返回一個新的鏈表。

你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。

進階:

如果輸入鏈表不能修改該如何處理?換句話說,你不能對列表中的節點進行翻轉。

示例:輸入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) 輸出: 7 -> 8 -> 0 -> 7

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/add-two-numbers-ii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 先將鏈表轉成字符串,對齊兩個字符串(短的前面加 ‘0’ )
  • 用字符串加法,得到新的字符串
  • 把新的字符串輸出鏈表
class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {string n1, n2, s;//鏈表轉字符串while(l1 && l2){n1.push_back(l1->val+'0');l1 = l1->next;n2.push_back(l2->val+'0');l2 = l2->next;}if(l1)while(l1){n1.push_back(l1->val+'0');l1 = l1->next;n2.insert(0,"0");}if(l2)while(l2){n2.push_back(l2->val+'0');l2 = l2->next;n1.insert(0,"0");}//字符串大數加法int i, bit, carry = 0, sum;for(i = n1.size()-1; i >= 0; --i){sum = n1[i]-'0'+n2[i]-'0'+carry;bit = sum%10;carry = sum/10;s.push_back(bit+'0');}if(carry)s.push_back(carry+'0');//低位在前//字符串輸出鏈表ListNode *head = NULL, *node;for(i = 0; i < s.size(); ++i){node = new ListNode(s[i]-'0');node->next = head;head = node;}return head;} };

總結

以上是生活随笔為你收集整理的LeetCode 445. 两数相加 II(链表大数加法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。