LeetCode 两数之和, 反向实现

1 -> 2 -> 3 -> 4

+                  3 -> 4

----------------------------

1 -> 2 -> 6 -> 8

func addTwoNumbersReverse(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil || l2 == nil {
return nil
} l := new(ListNode)
l.Val = 0
tmp := l
flag := 0
l1Arr := []int{}
l2Arr := []int{}
lRst := []int{} for l1 != nil { l1Arr = append(l1Arr, l1.Val)
l1 = l1.Next
} for l2 != nil { l2Arr = append(l2Arr, l2.Val)
l2 = l2.Next
} i := 0
for {
if i > len(l1Arr)-1 || i > len(l2Arr)-1 { break
}
num := l1Arr[i]+l2Arr[i]+flag
flag = 0
if num >= 10 {
flag = 1
num = num % 10
}
lRst = append(lRst,num)
i++
} if i < len(l1Arr) {
for ;i<len(l1Arr);i++{
if flag == 1 {
lRst = append(lRst,l1Arr[i]+1)
flag = 0
} else {
lRst = append(lRst,l1Arr[i])
}
}
} if i < len(l2Arr) {
for ;i<len(l2Arr);i++{
if flag == 1 {
lRst = append(lRst,l2Arr[i]+1)
flag = 0
} else {
lRst = append(lRst,l2Arr[i])
}
}
} for i := len(lRst)-1; i >=0; i-- {
tmp.Val = lRst[i]
if i == 0 {
break
}
tmp.Next = new(ListNode)
tmp = tmp.Next
}
return l
}

  思路: 为了简化运算把所有链表中的值取出来到切片里进行相加, 然后再从切片写入到新的链表里

 另一个思路: 借助昨天的代码, 再运算前对链表进行反转

LeetCode Golang 单向链表相加 反向实现的更多相关文章

  1. 待字闺中之快排单向链表;leetcode之Sort List

    题目来源.待字闺中.原创@陈利人 .欢迎大家继续关注微信公众账号"待字闺中" 分析:思路和数据的高速排序一样,都须要找到一个pivot元素.或者节点. 然后将数组或者单向链表划分为 ...

  2. [LeetCode] 206. Reverse Linked List 反向链表

    Reverse a singly linked list. Hint: A linked list can be reversed either iteratively or recursively. ...

  3. 【LeetCode每天一题】Add Two Numbers(两链表相加)

    You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

  4. 单向链表 golang

    package main import "fmt" type Object interface {} //节点 type Node struct { data Object nex ...

  5. 【LeetCode题解】链表Linked List

    1. 链表 数组是一种顺序表,index与value之间是一种顺序映射,以\(O(1)\)的复杂度访问数据元素.但是,若要在表的中间部分插入(或删除)某一个元素时,需要将后续的数据元素进行移动,复杂度 ...

  6. [LeetCode] Add Strings 字符串相加

    Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2. ...

  7. Python链表的实现与使用(单向链表与双向链表)

    参考[易百教程]用Python实现链表及其功能 """ python链表的基本操作:节点.链表.增删改查 """ import sys cl ...

  8. 如何判断一个单向链表是否为回文链表(Palindrome Linked List)

    题目:给定一个单向链表,判断它是不是回文链表(即从前往后读和从后往前读是一样的).原题见下图,还要求了O(n)的时间复杂度O(1)的空间复杂度. 我的思考: 1,一看到这个题目,大脑马上想到的解决方案 ...

  9. LeetCode 445——两数相加 II

    1. 题目 2. 解答 2.1 方法一 在 LeetCode 206--反转链表 和 LeetCode 2--两数相加 的基础上,先对两个链表进行反转,然后求出和后再进行反转即可. /** * Def ...

随机推荐

  1. UWP 利用DataGrid控件创建表格

    通过 Nuget 搜索 Microsoft.Toolkit.Uwp.UI.Controls.DataGrid 安装库,在XAML文件中添加引用库 xmlns:controls="using: ...

  2. DB2常用运维命令

    DB2是IBM公司推出关系型数据库管理系统.主要应用于银行.医院等大型机构.现今DB2主要包含以下三个系列:DB2 for Linux, UNIX and Windows(LUW) . DB2在Lin ...

  3. Teradata在大数据管理与分析领域连续18年评测排名第一

    Gartner 魔力象限介绍 Gartner(高德纳)全球最具权威的IT市场研究与顾问咨询公司,他总是不停地推出IT行业的各种报告以及著名的Gartner魔力象限. Gartner魔力象限通常从两个方 ...

  4. python数据分析------文本挖掘(jieba)

    1.import jieba jieba的cut函数有三个模式:全模式.精准模式.搜索引擎模式 1 精确模式,试图将句子最精确地切开,适合文本分析: 2 全模式,把句子中所有的可以成词的词语都扫描出来 ...

  5. 容器化haproxy+keepalived

    # 拉取haproxy镜像 docker pull haproxy:1.7.8-alpine mkdir /etc/haproxy cat >/etc/haproxy/haproxy.cfg&l ...

  6. html中的meta标签属性

    <!-- 声明文档使用的字符编码 --> <meta charset='utf-8'> <!-- 优先使用 IE 最新版本和 Chrome --> <meta ...

  7. 训练1-L

    n个人一起排队接水,第i个人需要ai的时间来接水. 1 <= n <= 1000 1 <= a,i<= 1000 同时只能有一个人接水,正在接水的人和没有接水的人都需要等待. ...

  8. (0)资料官网【从零开始学Spring Boot】

    Spring Boot官网:http://projects.spring.io/spring-boot/ Eclipse官网:http://www.eclipse.org/ Maven官网:http: ...

  9. 面试题(JVM加载机制)

    JVM加载class文件的原理机制? JVM中类的装载是classLoader 和它的子类来实现的,Java classLoader是个重要的java运行时的系统组件.它在运行时查找和装入类文件的类. ...

  10. HBase使用flush命令之后存储的位置

    HBase使用flush命令之后存储的位置 根据系统安装位置的不一样而不一样,当前是在: hadoop fs -ls /apps/hbase/data/data/default/t1 下面: 使用ha ...