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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

leetCode刷题--两数相加

發布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetCode刷题--两数相加 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給你兩個 非空 的鏈表,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的,并且每個節點只能存儲 一位 數字。

請你將兩個數相加,并以相同形式返回一個表示和的鏈表。

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


示例 3:

輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]

提示:

每個鏈表中的節點數在范圍 [1, 100] 內
0 <= Node.val <= 9
題目數據保證列表表示的數字不含前導零
通過次數692,191提交次數1,758,364

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

解題思路

因為給出兩個鏈表,要返回第三個, 我們要做的就是在申請第三個鏈表的時候,將鏈表1和鏈表2的val值加到鏈表三上,并對需要進位的地方進行進位,這樣就能快完成,執行效率高,不需要進行多余的運算

/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {var listNode *ListNodelistNode = new(ListNode)listNode.Val = l1.Val + l2.Vall1 = l1.Nextl2 = l2.Nextl3 := listNodex := l3.Val / 10l3.Val = l3.Val % 10for {if l1 == nil && l2 == nil {if x != 0 {l3.Next = new(ListNode)l3.Next.Val = x}break}l3.Next = new(ListNode)l3.Next.Val += xif l1 != nil {l3.Next.Val += l1.Vall1 = l1.Next}if l2 != nil {l3.Next.Val += l2.Vall2 = l2.Next}x = l3.Next.Val / 10l3.Next.Val = l3.Next.Val % 10l3 = l3.Next}return listNode }

執行結果

耗時4ms超過99.23的用戶

總結

以上是生活随笔為你收集整理的leetCode刷题--两数相加的全部內容,希望文章能夠幫你解決所遇到的問題。

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