LeetCode OJ : 2 Add Two Numbers
2015-11-26 22:21
405 查看
Add Two Numbers
Total Accepted: 103820 Total
Submissions: 487934 Difficulty: Medium
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked
list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
如果将结果存放在其中一个比较长的链表上面,效率应该会更高一些;
写了一半,懒得写了,大概思路就是:首先获得两个链表的长度,通过比较两个链表的长度,来分情况;
如果最高位还是有进位的话,就动态分配一个结点来保存进位1;
改天有时间再试试;
Total Accepted: 103820 Total
Submissions: 487934 Difficulty: Medium
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked
list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
/** * 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 *ListSum = NULL, *pNode = NULL, *tail = NULL; ListNode *pl1 = l1, *pl2 = l2; int sum, cnt = 0; while(pl1 != NULL || pl2 != NULL){ if(pl1 == NULL) { //此时是因为链表pl2比较长 sum = cnt + pl2->val; } else if(pl2 == NULL){ //此时是因为链表pl1比较长 sum = cnt + pl1->val; } else if(pl1 != NULL && pl2 != NULL){ sum = cnt + pl1->val + pl2->val; } cnt = 0; if(sum >= 10){ cnt = 1; sum -= 10; } pNode = new struct ListNode(sum); if(ListSum == NULL){ ListSum = pNode; tail = pNode; } else{ tail->next = pNode; tail = pNode; } if(pl1 != NULL)pl1 = pl1->next; if(pl2 != NULL)pl2 = pl2->next; } if(cnt == 1){ //考虑到最高位的两位进位 sum = cnt; pNode = new struct ListNode(sum); if(ListSum == NULL){ ListSum = pNode; tail = pNode; } else{ tail->next = pNode; tail = pNode; } } return ListSum; } };
如果将结果存放在其中一个比较长的链表上面,效率应该会更高一些;
写了一半,懒得写了,大概思路就是:首先获得两个链表的长度,通过比较两个链表的长度,来分情况;
如果最高位还是有进位的话,就动态分配一个结点来保存进位1;
改天有时间再试试;
相关文章推荐
- UserDefault
- 浅谈js中的垃圾两种回收机制
- Oracle锁表处理
- Asset目录与res目录
- oracle 解锁,修改字段名,复制数据SQL
- PHP 接口
- 我们为什么应该坚持写博客
- 接口的作用
- zzulioj--1787--生活危机(vector+dfs 好题)
- 没有躲过的坑--new一个指针数组、以及创建动态二维数组
- 没有躲过的坑--new一个指针数组、以及创建动态二维数组
- Delphi Jpg和Gif转Bmp
- 第一天
- 【转载】COM 组件设计与应用(五)——用 ATL 写第一个组件
- zzulioj--1787--生活危机(vector+dfs 好题)
- Linux-Centos 安装shutter截图软件
- 读书笔记--其他UI组件
- C++指针与引用(三):引用使用注意事项
- Block
- 基础算法 冒泡排序