package main

import "fmt"

type ListNode struct {
Val int
Next *ListNode
}

func main() {
l1 := &ListNode{
Val: 1,
Next: &ListNode{
Val: 2,
Next: &ListNode{
Val: 3,
},
},
}
l2 := &ListNode{
Val: 4,
Next: &ListNode{
Val: 5,
Next: &ListNode{
Val: 6,
},
},
}
l3 := addTwoNumbers(l1, l2)
num := ""
for l3 != nil {
val := l3.Val
num = fmt.Sprintf("%s%d", num, val)
l3 = l3.Next
}
fmt.Println(num)
}

func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
var head *ListNode
var previous *ListNode
var current *ListNode
var carry int
for l1 != nil || l2 != nil {
v1 := 0
v2 := 0
if l1 != nil {
v1 = l1.Val
}
if l2 != nil {
v2 = l2.Val
}
result := v1 + v2 + carry
nodeVal := result % 10
carry = result / 10
current = &ListNode{
Val: nodeVal,
}
if head == nil {
head = current
}
if previous != nil {
previous.Next = current
}

previous = current

if l1 != nil {
l1 = l1.Next
}
if l2 != nil {
l2 = l2.Next
}

}

if carry > 0 {
current = &ListNode{
Val: carry,
}
if head == nil {
head = current
}
if previous != nil {
previous.Next = current
}
}

return head
}

最新文章

  1. Predicate接口和Consumer接口
  2. 套接字Socket
  3. WPF常用方法,事件驱动和控件遍历
  4. Egret应用开发实践(01) Egret与WebPack
  5. android之多媒体篇(三)
  6. HDU 4734
  7. 转:阿里开源Mysql分布式中间件:Cobar
  8. Linux内核中链表实现
  9. HBase_在Linux上安装以及运用
  10. DataGuard开启延时应用的测试
  11. company_base_info_staff_job
  12. swipe使用及竖屏页面滚动方法
  13. weblogic创建控制台启动脚本以及创建服务器
  14. 英语发音规则---I字母常见发音组合有哪些
  15. VUE图片懒加载-vue lazyload插件的简单使用
  16. gitlab分支代码本地拉取及jenkins关联gitlab分支
  17. laravel获取的数据转换为数组
  18. Chrome插件-网页版BusHound
  19. Android ——利用OnDraw实现自定义View(转)
  20. shell命令注意点

热门文章

  1. 如何设置eclipse下查看java源码
  2. go channel 概述
  3. Linux:-e、-d、-f、-L、-r、-w、-x、-s、-h、
  4. React 传值 组件传值 之间的关系
  5. java实现文件压缩
  6. jQuery遍历的几种方式
  7. windows下更换MySql数据库数据文件夹位置
  8. 拆分行(Power Query 之 M 语言)
  9. 微前端框架 qiankun 技术分析
  10. CF253A Boys and Girls 题解