[LeetCode]Add Two Numbers
来源:互联网 发布:中国最红网络女主播 编辑:程序博客网 时间:2024/06/04 21:46
You are given two non-empty linked lists representing two non-negative integers. 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.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
题目本身不难,但是细节上容易出错。
因为数字是倒序存储在链表中,所以只需要逐位相加并记录进位即可。
当两个链表长度不等时,需要对较短的链表补零,例如(1 -> 2) + (1)需要处理成(1 -> 2) + (1 -> 0)。
当数字最高位即链表尾相加后有进位时,需要在表尾加一个1,例如(5) + (5)结果为(0 -> 1)。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: int carry = 0; //记录进位 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *sum = NULL; ListNode *head = NULL; int temp = 0; while (l1 != NULL || l2 != NULL) { /*对较短的链表补零*/ if (l1 == NULL) { l1 = new ListNode(0);}if (l2 == NULL) {l2 = new ListNode(0);} temp = l1->val + l2->val; /*若上一位计算有进位,则当前结果加一*/ if (carry == 1) { temp += 1; } /*根据当前位结果记录进位*/ if (temp >= 10) { temp -= 10; carry = 1; } else { carry = 0; } ListNode *currsum = new ListNode(temp); if (head == NULL) { head = currsum; sum = head; } else { sum->next = currsum; sum = sum->next; } l1 = l1->next; l2 = l2->next; } /*若最高位计算结果有进位,则在表尾插入新节点1*/ if (carry == 1) { sum->next = new ListNode(1);} return head; }};
阅读全文
0 0
- LeetCode: Add Two Numbers
- LeetCode: Add Two Numbers
- [LeetCode]Add Two Numbers
- LeetCode Add Two Numbers
- Leetcode: Add Two Numbers
- LeetCode : Add Two Numbers
- LeetCode Add Two Numbers
- [LeetCode] Add Two Numbers
- Leetcode : Add Two Numbers
- 【leetcode】Add Two Numbers
- [LeetCode]Add Two Numbers
- leetcode Add Two Numbers
- LeetCode-Add Two Numbers
- [leetcode] Add Two Numbers
- [LeetCode] Add Two Numbers
- LeetCode - Add Two Numbers
- LeetCode | Add Two Numbers
- 【leetcode】Add Two Numbers
- PhpStorm配置XDebug调试PHP
- webpack保存路径
- 【Spring Security实战系列】Spring Security实战(七)
- 关于双向认证,使用HttpsURLConnection访问Https安全链接
- spring boot整合Swagger2
- [LeetCode]Add Two Numbers
- gradle or maven引入net.sf.json失败解决办法
- dotNetCharting使用总结
- vue props怎么传多个数据?
- kaptcha验证码使用
- google ARCore 尝鲜
- Servlet的生命周期02
- JAVA并发编程1
- atomic类与hashmap的组合