亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

鏈表表示數字相加 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

鄂托克前旗| 永德县| 新乐市| 子洲县| 保靖县| 神农架林区| 常熟市| 高雄县| 辰溪县| 辛集市| 宜昌市| 定州市| 洪湖市| 浦北县| 崇文区| 绥滨县| 成都市| 咸阳市| 潞城市| 故城县| 杂多县| 安康市| 邛崃市| 兴文县| 昭觉县| 奉新县| 建湖县| 侯马市| 健康| 曲松县| 云浮市| 榆林市| 石首市| 延吉市| 达拉特旗| 东城区| 郯城县| 宜兴市| 龙川县| 瓦房店市| 福泉市|