LintCode链表求和221
来源:互联网 发布:关于sql查询的实训报告 编辑:程序博客网 时间:2024/05/16 15:06
221.假定用一个链表表示两个数,其中每个节点仅包含一个数字。假设这两个数的数字顺序排列,请设计一种方法将两个数相加,并将其结果表现为链表的形式。
对于这道题,可以先把两个链表翻转,再依次相加,再把相加的结果再次翻转。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: /* * @param l1: The first list. * @param l2: The second list. * @return: the sum list of l1 and l2. */ ListNode * addLists2(ListNode * l1, ListNode * l2) { if(!l1&&!l2) return NULL; ListNode *head = new ListNode; ListNode *tail = head; ListNode *p1 = reverse(l1);//翻转链表l1 ListNode *p2 = reverse(l2);//翻转链表l2 head->next = NULL; int val1,val2; int flag = 0; while(p1||p2)//翻转后的链表元素依次相加 { if(p1) { val1 = p1->val; p1 = p1->next; } else val1 = 0; if(p2) { val2 = p2->val; p2 = p2->next; } else val2 = 0; int temp = flag+val1+val2; flag = temp/10; temp = temp%10; ListNode *pTest = new ListNode; pTest->val = temp; pTest->next = NULL; tail->next = pTest; tail = tail->next; } if(flag) { ListNode *pTest = new ListNode; pTest->val = flag; pTest->next = NULL; tail->next = pTest; } tail = head; head = head->next; delete tail; return reverse(head);//翻转计算结果 } ListNode * reverse(ListNode *head)//翻转链表 { ListNode *p = new ListNode; ListNode *temp = NULL; p->next = NULL; temp = head; head = p; p = temp; while(p) { temp = p; p = p->next; temp->next = head->next; head->next = temp; } temp = head; head = head->next; return head; }};
阅读全文
0 0
- LintCode链表求和221
- LintCode 链表求和
- lintcode ----链表求和
- LintCode 链表求和
- 链表求和-LintCode
- lintcode--链表求和
- LintCode:链表求和
- lintcode-链表求和
- 链表求和-LintCode
- lintcode 链表求和
- 链表求和(LintCode)
- lintcode(221)链表求和 II
- 链表求和(LintCode)
- LintCode-简单-链表求和
- LintCode之链表求和
- lintcode,167,链表求和
- LintCode | 167. 链表求和
- LintCode 链表求和 问题解答
- Python3 字典
- eclipse的快速录入
- Mybatis基于接口代理的方式来开发Dao(二)
- 171001 逆向-Reversing.kr(WindowsKernel)
- 10-1NOIP模拟赛总结
- LintCode链表求和221
- static关键字
- 【DP例题选讲】&因式分解问题-任何人都不适合放弃&
- PAT 甲级 1063. Set Similarity (25)
- 洛谷题目按难度点评---普及
- Q05现金支付
- VMware Host Only方式联网配置注意
- Q06考拉兹猜想
- ArcGIS 10.0紧凑型切片读写方法