91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

鏈表表示數字相加 go語言版本

發布時間:2020-03-03 02:55:41 來源:網絡 閱讀:339 作者:雷頓學院 欄目:開發技術

鏈表表示數字相加 go語言版本


給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。

示例:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

package?main
import?"fmt"
import?"strconv"
import?"reflect"
type?ListNode?struct?{
????data?int
????next?*ListNode
}
//轉成字符串,數字?相加,再轉成鏈表
func?AddTwoNum(l1?*ListNode,?l2?*ListNode)?*ListNode?{
????????l1Int,_?:=?strconv.Atoi(reverse(l1))
????????l2Int,_?:=?strconv.Atoi(reverse(l2))
????????l?:=?l1Int?+?l2Int
????????lStr?:=?strconv.Itoa(l)
????????fmt.Println(reflect.TypeOf(lStr))
????????fmt.Println(lStr)
????????var?newList?[]*ListNode
????????for?_,v?:=?range?lStr?{
????????fmt.Println(string(v))
????????n,_?:=?strconv.Atoi(string(v))
????????node?:=?&ListNode{data:n}
????????newList?=?append(newList,node)
????????}
????????head?:=?new(ListNode)
????????tail?:=?head
????????for?k,node?:=?range?newList?{
????????if?k?==?len(newList)-1?{
????????newList?=?append(newList,nil)
????????}
????????node.next?=?newList[k+1]
????????tail.next?=?node
????????tail?=?tail.next
????????}
????????return?head
????}

func?reverse(l?*ListNode)?string?{
????var?s?string
????for?l?!=?nil?{
????s?+=?strconv.Itoa(l.data)
????l?=?l.next
????}
????return?s
}

//?反轉鏈表,相加,注意進位
func?(l?*ListNode)AddTwoNumLink(l1?*ListNode)?*ListNode?{
????//head?:=?new(ListNode)
????var?head?*ListNode
????head?=?&ListNode{}
????newList?:=?new(ListNode)
????newList?=?head
????var?newNode?*ListNode
????l?=?l.reverseLink()
????l1?=?l1.reverseLink()
????data?:=?0
????carry?:=?0
????//fmt.Println(l,l1)
????for?l?!=?nil?||?l1?!=?nil?{
????????var?data1,data2?int
????????if?l?!=?nil?{
????????????data1?=?l.data
????????????l?=?l.next
????????}?else?{
????????????data1?=?0
????????}
????????if?l1?!=?nil?{
????????????data2?=?l1.data
????????????l1?=?l1.next
????????}?else?{
????????????data2?=?0
????????}
????????fmt.Println(data1,data2)
????????data?=?(data1?+?data2?+?carry)?%?10
????????newNode?=?&ListNode{data:data}
????????head.next?=?newNode
????????carry?=?(data1?+?data2?+?carry)?/?10
????????head?=?head.next??
????}
????return?newList.next.reverseLink()
}

func?(l?*ListNode)reverseLink()?*ListNode?{
????//pre?:=?new(ListNode)
????var?pre?*ListNode
????next?:=?new(ListNode)
????for?l?!=?nil?{
????????next?=?l.next
????????//fmt.Println(l.next)
????????l.next?=?pre
????????pre?=?l
????????l?=?next
????}
????l?=?pre
????return?l
????//return?pre
}

func?(l?*ListNode)readLink()?{
????var?result?[]int
????for?l?!=?nil?{
????result?=?append(result,l.data)
????l?=?l.next
????}
????fmt.Println(result)
}

func?main()??{
????node7?:=?&ListNode{data:7,next:nil}
????node6?:=?&ListNode{data:6,next:node7}
????node5?:=?&ListNode{data:5,next:node6}

????node4?:=?&ListNode{data:4,next:?node5}

????node3?:=?&ListNode{data:3,next:nil}
????//node3?:=?&ListNode{data:3,next:nil}
????node2?:=?&ListNode{data:2,next:node3}
????node1?:=?&ListNode{data:1,next:?node2}
????
????
????//x?:=?AddTwoNum(node1,node4)
????node1.readLink()
????//node1.reverseLink().readLink()
????node1.AddTwoNumLink(node4).readLink()
????//fmt.Println(r)
?
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

go
AI

沧州市| 永福县| 镇安县| 沂源县| 漯河市| 巴东县| 临沧市| 周口市| 格尔木市| 略阳县| 宁强县| 密山市| 建宁县| 台中市| 宜都市| 怀柔区| 永州市| 苏尼特右旗| 方正县| 蒙山县| 临泽县| 宁安市| 丰都县| 玉门市| 邵武市| 阆中市| 志丹县| 宜兴市| 乌鲁木齐市| 衡山县| 常宁市| 海南省| 高平市| 疏附县| 南溪县| 监利县| 长治市| 凤山市| 沈丘县| 沛县| 宜川县|