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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Go 2. 两数相加

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

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

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

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

鏈接:https://leetcode-cn.com/problems/add-two-numbers

package mainimport "fmt"func main() {l3 := ListNode{3, nil}l2 := ListNode{Val: 4, Next: &l3}l1 := ListNode{Val: 2, Next: &l2}l6 := ListNode{Val: 4, Next: nil}l5 := ListNode{Val: 6, Next: &l6}l4 := ListNode{Val: 5, Next: &l5}// 輸入:l1 = [2,4,3], l2 = [5,6,4]// 輸出:[7,0,8]// 解釋:342 + 465 = 807.fmt.Printf("兩數相加: %+v", addTwoNumbers(&l1, &l4)) }/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {if l1 == nil && l2 == nil {return nil}head := &ListNode{0, nil}current := head//進位carry := 0//l1 = [2,4,3], l2 = [5,6,4]//FOR_STARTfor l1 != nil || l2 != nil {var x, y intif l1 == nil {x = 0} else {x = l1.Val}if l2 == nil {y = 0} else {y = l2.Val}// 這里有點繞哈, 給 current 的 Next 賦值// % 是求余數, 不是整除 /, 比如 4 + 6 + 0 = 10, 10 % 10 = 0 符合; 10 / 10 = 1 顯然不符合相加規范current.Next = &ListNode{(x + y + carry) % 10, nil}// 讓 current == 剛才賦值的 Nextcurrent = current.Nextcarry = (x + y + carry) / 10if l1 != nil {l1 = l1.Next}if l2 != nil {l2 = l2.Next}}//FOR_EDN//其實是逆序的708, 7是頂, 8是底if carry > 0 {current.Next = &ListNode{carry % 10, nil}}return head.Next }type ListNode struct {Val intNext *ListNode }

總結

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

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