LeetCode 2 Add Two Numbers
2016-02-16 08:17
323 查看
题目连接:
https://leetcode.com/problems/add-two-numbers/
题目大意:
就是链表表示的两个数进行加法
大致思路:
首先注意进位的问题,然后就是链表的长度不一样的问题,两个长度分别为x, y的数相加,最多能得到的数长度是max(x, y) + 1
写的时候注意一下就好了
代码如下:
Result : Accepted Time : 36 ms
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *ret = new ListNode(-1);
ListNode* ans = ret;
int last = 0;
do{
if(l1 != NULL) last += l1->val, l1 = l1->next;
if(l2 != NULL) last += l2->val, l2 = l2->next;
ret->val = last % 10;
last = last / 10;
if(l1 != NULL || l2 != NULL || last == 1){
ret->next = new ListNode(-1);
ret = ret->next;
}
}while(l1 != NULL || l2 != NULL || last == 1);
return ans;
}
};
https://leetcode.com/problems/add-two-numbers/
题目大意:
就是链表表示的两个数进行加法
大致思路:
首先注意进位的问题,然后就是链表的长度不一样的问题,两个长度分别为x, y的数相加,最多能得到的数长度是max(x, y) + 1
写的时候注意一下就好了
代码如下:
Result : Accepted Time : 36 ms
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *ret = new ListNode(-1);
ListNode* ans = ret;
int last = 0;
do{
if(l1 != NULL) last += l1->val, l1 = l1->next;
if(l2 != NULL) last += l2->val, l2 = l2->next;
ret->val = last % 10;
last = last / 10;
if(l1 != NULL || l2 != NULL || last == 1){
ret->next = new ListNode(-1);
ret = ret->next;
}
}while(l1 != NULL || l2 != NULL || last == 1);
return ans;
}
};
相关文章推荐
- 网络路由技术及运用2
- 获取免费的Camtasia Studio 2使用授权
- 选择模式 - XSL教程 - 2
- JS Common 2 之比较常用到的函数第1/3页
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [Struts 2系列] Struts 2发展历程
- 让Sublime Text 2支持GB2312和GBK编码
- 【python】编程语言入门经典100例--1
- 野人过河问题
- Video 5 Part 2 计算子网
- 诺基亚N8
- Sublime Text 2 快捷键用法大全
- leetcode----Longest Substring Without Repeating Characters
- 四个人过桥分别用时1、2、5、10,每次最多两个人过桥,只有一把手电,求时间最短
- 2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number