2-Add Two Numbers @LeetCode
2-Add Two Numbers @LeetCode
题目
思路
题目中得到的信息有:
- 这是两个非负数,每位分别保存在链表的一个结点上;
- 逆序保存,从低位到高位依次。
一般整数的相加都是从低往高进行,和保存的顺序一致,因此一次遍历就可完成,可以看出这道题目不难。
C算法
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
struct ListNode *ret, *p, *prev;
p = ret = prev = NULL;
int flag = 0;
//先是两个整数相加
while((l1 != NULL) && (l2 != NULL) ) {
p = (struct ListNode *)malloc(sizeof(struct ListNode));
p->val = l1->val + l2->val + flag;
flag = p->val / 10;
p->val -= (flag > 0 ? 10 : 0);
if (prev != NULL) prev->next = p;
prev = p;
if (ret == NULL) ret = p;
l1 = l1->next;
l2 = l2->next;
}
//若是l1还有结点,添加上去
while(l1 != NULL) {
p = (struct ListNode *)malloc(sizeof(struct ListNode));
p->val = l1->val + flag;
flag = p->val / 10;
p->val -= (flag > 0 ? 10 : 0);
l1 = l1->next;
if (prev != NULL) prev->next = p;
if (ret == NULL) ret = p;
prev->next = p;
prev = p;
}
//若是l2还有结点,添加上去
while(l2 != NULL) {
p = (struct ListNode *)malloc(sizeof(struct ListNode));
p->val = l2->val + flag;
flag = p->val / 10;
p->val -= (flag > 0 ? 10 : 0);
l2 = l2->next;
if (prev != NULL) prev->next = p;
if (ret == NULL) ret = p;
prev->next = p;
prev = p;
}
//最后可能会有进位,要考虑到
if (flag != 0) {
p = (struct ListNode *)malloc(sizeof(struct ListNode));
p->val = flag;
prev->next = p;
prev = p;
flag = 0;
}
prev->next = NULL;
return ret;
}
结果
2-Add Two Numbers @LeetCode的更多相关文章
- Add Two Numbers LeetCode Java
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- Add two numbers [LeetCode]
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- Add Two Numbers ---- LeetCode 002
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- LeetCode 面试:Add Two Numbers
1 题目 You are given two linked lists representing two non-negative numbers. The digits are stored in ...
- [LeetCode] Add Two Numbers II 两个数字相加之二
You are given two linked lists representing two non-negative numbers. The most significant digit com ...
- [LeetCode] Add Two Numbers 两个数字相加
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- LeetCode Add Two Numbers II
原题链接在这里:https://leetcode.com/problems/add-two-numbers-ii/ 题目: You are given two linked lists represe ...
- leetcode 第二题Add Two Numbers java
链接:http://leetcode.com/onlinejudge Add Two Numbers You are given two linked lists representing two n ...
- LeetCode(2) || Add Two Numbers && Longest Substring Without Repeating Characters
LeetCode(2) || Add Two Numbers && Longest Substring Without Repeating Characters 题记 刷LeetCod ...
- LeetCode:1. Add Two Numbers
题目: LeetCode:1. Add Two Numbers 描述: Given an array of integers, return indices of the two numbers su ...
随机推荐
- 第八次作业:聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
import numpy as np x = np.random.randint(1,100,[20,1]) y = np.zeros(20) k = 3 def initcenter(x,k): r ...
- .NET界面控件DevExpress发布v18.2.8|附下载
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- hibernate 保存的flush怎么用?
hibernate 中的flush方法只有在上面的数据保存用了hibernate的方法保存了,但是在同一个事物当中需要用SQL的方法去查上面保存的数据,这个时候上方的hibernate保存后面就需要用 ...
- 分布式session个人理解浅谈
在分布式中,用户的session如何处理呢? 服务器中的原生session是无法满足需求的,因为用户的请求有可能随机落入到不同的服务器中,这样的结果将会导致用户的session丢失,传统做法中有解决方 ...
- nginx配置支持http2
1.简介 nginx 配置支持http2.目前大多数网站都是http1.1(如果你没有特别配置过的话) 一切都是为了访问更快. 2.如何查看自己网站的http版本 最简单的方法就F12啊,我这里是火狐 ...
- 如何开发NPM包
创建包目录 D:\>mkdir mypackage && cd mypackage D:\mypackage>npm init --yes 进入mypackage目录,你会 ...
- Raspberry Pi 安装配置 Home Assistant
家庭助理(Home Assistant)是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制.跟踪和控制家里的所有设备, 并自动化控制,能完美的运行在树 ...
- 搭建QT环境
开始使用QT时,环境配置好了,以后才不会有这方面的麻烦,所以第一步,把自己的工作环境搭建好! 下面是我的环境搭建过程,留个记录,也为了后来者能少走一些弯路. 注:本人的系统是WIN7x64位的,其他系 ...
- Java线程的创建及启动
1.继承Thread类,重写该类的run()方法. package samTest; import java.util.Scanner; /** * Created by Sam on 2018-01 ...
- PHP为什么有人学不会
互联网进入到人们生活中的方方面面了,世界首富比尔盖茨多次提到青少年编程,而编程是一种思维习惯的转化. 作为写了10几年程序的人,我听到过一些说编程不好学的抱怨. 从目前见到的数据统计,主要是因为在大学 ...