leetcode 5. 两个链表逐个元素相加 Add Two Numbers
来源:互联网 发布:淘宝拍摄培训 编辑:程序博客网 时间:2024/05/21 04:39
7问题:Add Two Numbers 难度-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
解答:
目标:做一个带进位的加法器(243+564 = 708)
本题需要重点考虑的是–两个链表不等长的情况 和 最后的进位
class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if (l1 == NULL || l2 == NULL) return l1 == NULL ? l2 : l1; ListNode dummy(-1); //虚拟节点,指向链表头 ListNode* l = &dummy; int carry = 0; int v1, v2, sum; while (l1 || l2) { if (l1) { v1 = l1->val; l1 = l1->next; } else { v1 = 0; } if (l2) { v2 = l2->val; l2 = l2->next; } else { v2 = 0; } sum = v1 + v2 + carry; l->next = new ListNode(sum % 10);//后插法,如果是C语言,写一个后插函数 carry = sum / 10; l = l->next; } //l1,l2均达到尾部时,处理最后的进位 if (carry) { l->next = new ListNode(carry); } return dummy.next; }};
0 0
- leetcode 5. 两个链表逐个元素相加 Add Two Numbers
- LeetCode Add Two Numbers两个链表数值相加
- LeetCode | Add Two Numbers(两个链表相加)
- (leetcode)2. 两个链表相加Add Two Numbers--Java
- Add Two Numbers Leetcode 链表相加
- Leetcode Add two numbers链表相加
- 【LeetCode】链表相加 Add Two Numbers
- leetcode Add Two Numbers 两个数相加
- Add Two Numbers 把两个以链表形式表示的数相加 @LeetCode
- [Leetcode #2]Add Two Numbers 链表存储的两个正数相加
- LeetCode 2. Add Two Numbers -- 两个链表按序从头到尾相加,记录进位
- Add Two Numbers 两个链表相加 python
- [Leetcode]Add Two Numbers 链表实现大数字相加
- LeetCode-2. Add Two Numbers(链表实现数字相加)
- 【LeetCode】2.Add Two Numbers两个单链表相加
- Add Two Numbers 链表相加
- Add Two Numbers 链表相加
- Leetcode Add Two Numbers 两个链表表示的数相加
- ThinkPHP连接mongo的奇异现象
- 二叉树中序遍历的非递归方法
- 第八周项目三(1):分数类中的运算符重载
- Linux Shell脚本面试25问
- Linux的文件权限与目录配置
- leetcode 5. 两个链表逐个元素相加 Add Two Numbers
- CUDA学习笔记(二)——CUDA扩展
- 第八周项目一实现复数类中的运算符重载(1)
- WebRTC代码走读(四):音频发送流程
- Docker简介及其应用领域
- SpringMVC 类型转换错误自定义返回
- List中的find的两种用法
- android生命周期内函数调用情况
- 创建二叉树