LeetCode Golang 单向链表相加 反向实现
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 单向链表相加 反向实现的更多相关文章
- 待字闺中之快排单向链表;leetcode之Sort List
题目来源.待字闺中.原创@陈利人 .欢迎大家继续关注微信公众账号"待字闺中" 分析:思路和数据的高速排序一样,都须要找到一个pivot元素.或者节点. 然后将数组或者单向链表划分为 ...
- [LeetCode] 206. Reverse Linked List 反向链表
Reverse a singly linked list. Hint: A linked list can be reversed either iteratively or recursively. ...
- 【LeetCode每天一题】Add Two Numbers(两链表相加)
You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...
- 单向链表 golang
package main import "fmt" type Object interface {} //节点 type Node struct { data Object nex ...
- 【LeetCode题解】链表Linked List
1. 链表 数组是一种顺序表,index与value之间是一种顺序映射,以\(O(1)\)的复杂度访问数据元素.但是,若要在表的中间部分插入(或删除)某一个元素时,需要将后续的数据元素进行移动,复杂度 ...
- [LeetCode] Add Strings 字符串相加
Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2. ...
- Python链表的实现与使用(单向链表与双向链表)
参考[易百教程]用Python实现链表及其功能 """ python链表的基本操作:节点.链表.增删改查 """ import sys cl ...
- 如何判断一个单向链表是否为回文链表(Palindrome Linked List)
题目:给定一个单向链表,判断它是不是回文链表(即从前往后读和从后往前读是一样的).原题见下图,还要求了O(n)的时间复杂度O(1)的空间复杂度. 我的思考: 1,一看到这个题目,大脑马上想到的解决方案 ...
- LeetCode 445——两数相加 II
1. 题目 2. 解答 2.1 方法一 在 LeetCode 206--反转链表 和 LeetCode 2--两数相加 的基础上,先对两个链表进行反转,然后求出和后再进行反转即可. /** * Def ...
随机推荐
- 【真·干货】MySQL 索引及优化实战
热烈推荐:超多IT资源,尽在798资源网 声明:本文为转载文章,为防止丢失所以做此备份. 本文来自公众号:GitChat精品课 原文地址:https://mp.weixin.qq.com/s/6V7h ...
- 内核如何检测SOFT LOCKUP与HARD LOCKUP?
内核如何检测SOFT LOCKUP与HARD LOCKUP? From article 所谓lockup,是指某段内核代码占着CPU不放.Lockup严重的情况下会导致整个系统失去响应.Lockup有 ...
- IOS - 零碎
---恢复内容开始--- 1.模拟器目录: ProjectNameApk.documents.library(cache.preference.cookies).temp 2.Edit-Refacto ...
- 分类IP地址
分类IP地址是将IP地址划分为若干个固定类. IP地址由网络标识字段(netID)和主机标识字段(hostID)组成.IP地址可以标识为: IP地址:: = { <网络标识>,<主机 ...
- [模板] zkw线段树
zkw线段树 code1简单版本 code2差分版本(暂无) code1:(有注释) //By Menteur_Hxy #include<cstdio> #include<iostr ...
- 《黑白团团队》第八次团队作业:Alpha冲刺 第五天
项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第五天 日期:2019/6/19 成员 ...
- 百度url 参数详解全
百度url解析Joe.Smith整理大全 百度url解析Joe.Smith整理大全...1 本文链接:http://blog.csdn.net/qq_26816591/article/details/ ...
- BA-siemens-insight时间表设置
时间表问题汇总: 如果遇到这种问题,显示"unable to locate databse object",就使用database transfer上传一边所有的模块信息,然后在操 ...
- ios网络学习------3 用非代理方法实现异步post请求
#pragma mark - 这是私有方法.尽量不要再方法中直接使用属性,由于一般来说属性都是和界面关联的,我们能够通过參数的方式来使用属性 #pragma mark post登录方法 -(void) ...
- Codeforces 570D TREE REQUESTS dfs序+树状数组
链接 题解链接:点击打开链接 题意: 给定n个点的树.m个询问 以下n-1个数给出每一个点的父节点,1是root 每一个点有一个字母 以下n个小写字母给出每一个点的字母. 以下m行给出询问: 询问形如 ...