4.用链表实现两个大数相加
2014-09-26 16:20
351 查看
所有数字都用逆向链表表示:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
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 *p = l1, *q = l2; ListNode *head = new ListNode(0); ListNode *h = head; int flag = 0; while (p != NULL || q != NULL) { ListNode *newNode = new ListNode(((p != NULL ? p->val : 0) + (q != NULL ? q->val : 0) + flag) % 10); flag = ((p != NULL ? p->val : 0) + (q != NULL ? q->val : 0) + flag) / 10; h->next = newNode; h = h->next; if (p != NULL) p = p->next; if (q != NULL) q = q->next; } if (flag) { ListNode *newNode = new ListNode(flag); h->next = newNode; } return head->next; } };
相关文章推荐
- (链表实现)写出两个一元多项式相加的算法
- java实现两个大数相加
- 用字符串模拟两个大数相加——java实现
- Java不使用BigDecimal,实现两个大数相加
- 用字符串模拟两个大数相加——java实现
- C++实现的一个简单两个大数相加程序!
- 用字符串模拟两个大数相加——java实现
- python实现单链表,及两个链表按位相加
- C实现两个大数相加
- java编程实现两个大数相加代码示例
- 栈实现两个大数相加
- 实现两个大数相加!
- 两个大数相加 ----Javascrit 实现
- 用单链表实现两个大型整数的相加
- (链表实现)写出两个一元多项式相加的算法
- 杭电oj1002即用c++实现两个大数相加
- 链表实现两个大正整数相加
- 链表实现两个数字相加
- JAVA实现两个大数相加
- 栈实现两个大数相加