【leetcode】002 Add Two Numbers
2015-01-30 22:10
351 查看
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
【题意解析】从两个非负倒序储存元素链表中提取出两个数字相加,并将得到的结果转换为倒序储存的链表。
【解题思路】题目中提到是倒序存储,所有上述既为342+465=807。单链表,我们从题意很容易得到解题思路:用两个指针分别同步遍历两个链表将对应的节点值相加后,再加上前一对节点的进位值(初值为0)。用得到的新值模10后建立节点,并计算下一个节点的进位值。注意,若最后进位值不为0则需要增加一个尾节点。
AC CODE:
题目链接:https://oj.leetcode.com/problems/add-two-numbers/
leetcode全套习题code下载:
github:https://github.com/huoyao/TL_letcd
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
【题意解析】从两个非负倒序储存元素链表中提取出两个数字相加,并将得到的结果转换为倒序储存的链表。
【解题思路】题目中提到是倒序存储,所有上述既为342+465=807。单链表,我们从题意很容易得到解题思路:用两个指针分别同步遍历两个链表将对应的节点值相加后,再加上前一对节点的进位值(初值为0)。用得到的新值模10后建立节点,并计算下一个节点的进位值。注意,若最后进位值不为0则需要增加一个尾节点。
AC CODE:
class Solution { public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { ListNode *lstres =NULL, *lstid = NULL, *pt1=l1, *pt2=l2; int forward = 0; while (pt1 || pt2) { int t = forward; if (pt1) { t += pt1->val; pt1 = pt1->next; } if (pt2) { t += pt2->val; pt2 = pt2->next; } if (!lstres) { lstres = new ListNode(t%10); lstid = lstres; }else { lstid->next = new ListNode(t%10); lstid = lstid->next; } forward = t/10; } if (forward) lstid->next = new ListNode(forward); return lstres; } };
题目链接:https://oj.leetcode.com/problems/add-two-numbers/
leetcode全套习题code下载:
github:https://github.com/huoyao/TL_letcd
相关文章推荐
- leetcode刷题: 002 Add Two Numbers
- 002_LeetCode_2 Add Two Numbers 题解
- 【JAVA、C++】LeetCode 002 Add Two Numbers
- LeetCode 002 Add Two Numbers
- 002 Add Two Numbers [Leetcode]
- [LeetCode 002] Add Two Numbers
- [Leetcode题解]002 Add Two Numbers
- leetcode 002 —— add two numbers
- leetcode-002 Add Two Numbers
- leetcode002——add two numbers
- LeetCode 002 Add Two Numbers
- Leetcode_002_Add_Two_Numbers
- LeetCode 002, Add Two Numbers
- LeetCode-002 Add Two Numbers
- 【Leetcode】002 Add Two Numbers
- LeetCode-Add Two Numbers_002
- 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】
- [LeetCode]-002-Add Two Numbers
- LeetCode 002 AddTwoNumbers
- leetcode 002 Add_Two_Numbers