Add Two Numbers (c++)
来源:互联网 发布:淘宝照片修图教程 编辑:程序博客网 时间:2024/06/06 07:15
题目:
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) { if(l1==NULL&&l2==NULL) return NULL; ListNode *res = new ListNode(0); ListNode *join_Node = res; ListNode *L1 = l1; ListNode *L2 = l2; int overflow = 0; //进位值 while(L1!=NULL&&L2!=NULL)//都非空时运算 { int sum = overflow+L1->val+L2->val; overflow = sum/10; join_Node->next = new ListNode(sum%10); join_Node = join_Node->next; L1 = L1->next; L2 = L2->next; } ListNode *L_rem=L1?L1:L2;//有链表遍历完了 对剩下的处理 while(L_rem!=NULL) { int sum = overflow+L_rem->val; overflow = sum/10; join_Node->next = new ListNode(sum%10); join_Node = join_Node->next; L_rem = L_rem->next; } if(overflow>0) join_Node->next = new ListNode(overflow); join_Node = res; res = res->next; //第一个元素去除掉 return res; }};
0 0
- Add Two Numbers (c++)
- 002Add Two Numbers (C)
- Add Two Numbers(C)
- [LeetCode] Add Two Numbers(C++)
- C实现 LeetCode->Add Two Numbers
- 【leetcode-2】Add Two Numbers(C)
- [c++] LeetCode Add Two Numbers问题
- [2, Medium, C++] Add Two Numbers
- LeetCode: 2. Add Two Numbers 【C 解题】
- [C语言][LeetCode][2]Add Two Numbers
- [LeetCode#2][C]Add Two Numbers
- leetcode 2:Add Two Numbers(C语言)
- 【leetcode 2】 Add Two Numbers(C++)
- LeetCode 2. Add Two Numbers(C++)
- 【C++】【LeetCode】【指针】2. Add Two Numbers
- 【LeetCode】2. Add Two Numbers C语言
- Leetcode c语言-Add Two Numbers
- Add two numbers & Add binary
- 埃及分数——迭代加深搜索
- android开发环境搭建
- 【转】MySQL体系结构
- 01-16:SQLite使用方法
- java自学之路-----构造函数以及static的简单用法
- Add Two Numbers (c++)
- Scala入门
- 基于Hadoop2.2.0版本分布式云盘的设计与实现
- 在Tomcat下部署java web项目的简单方法步骤
- 01_14/15:Handler的使用
- 《C++ Primer》学习笔记——C++引用
- USACO Section 4.1 Fence Loops
- 排序算法
- Doing Homework again 贪心