445. Add Two Numbers II leetcode (list)
来源:互联网 发布:silverlight5 for mac 编辑:程序博客网 时间:2024/05/19 12:16
Add Two Numbers II
You are given two linked lists representing two non-negative numbers. The most significant digit comes first 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.
Follow up:
What if you cannot modify the input lists? In other words, reversing the lists is not allowed.
Example:
Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 8 -> 0 -> 7
更优化的方法,见:http://www.cnblogs.com/charlesblc/p/6013233.html
//目前并未想到更好的办法,目前只是用栈来实现ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if(NULL == l1 || NULL == l2) { return l1=NULL?l2:l1; } //采用栈来实现 stack<int> sta1; stack<int> sta2; stack<int> sta; ListNode* p1 = l1; ListNode* p2 = l2; while(p1) { sta1.push(p1->val); p1 = p1->next; } while(p2) { sta2.push(p2->val); p2 = p2->next; } int c = 0; while(!sta1.empty() && !sta2.empty()) { int temp = sta1.top() + sta2.top() + c; sta.push(temp % 10); c = temp / 10; sta1.pop(); sta2.pop(); } if(!sta2.empty()) { sta1 = sta2; } while(!sta1.empty()) { int temp = sta1.top() + c; sta.push(temp % 10); c = temp / 10; sta1.pop(); } if(c == 1) { sta.push(c); } ListNode* head = (ListNode*)malloc(sizeof(ListNode)); head->val = sta.top(); sta.pop(); head->next = NULL; ListNode* tail = head; while(!sta.empty()) { ListNode* temp = (ListNode*)malloc(sizeof(ListNode)); temp->val = sta.top(); temp->next = NULL; tail->next = temp; tail = temp; sta.pop(); } return head; }
0 0
- 445. Add Two Numbers II leetcode (list)
- LeetCode 445. Add Two Numbers II
- leetcode-445. Add Two Numbers II
- LeetCode 445. Add Two Numbers II
- [LeetCode]445. Add Two Numbers II
- LeetCode 445. Add Two Numbers II
- LeetCode 445. Add Two Numbers II
- 【LeetCode】 445. Add Two Numbers II
- LeetCode笔记:445. Add Two Numbers II
- leetcode 445. Add Two Numbers II
- 【Leetcode】445. Add Two Numbers II
- LeetCode 445. Add Two Numbers II
- LeetCode 445. Add Two Numbers II
- Leetcode-445. Add Two Numbers II
- LeetCode 445. Add Two Numbers II
- leetcode 445. Add Two Numbers II
- leetcode 445. Add Two Numbers II
- [LeetCode] 445. Add Two Numbers II
- Android 使用个迭代器解析json
- Google官方navigation drawer详细讲解
- CurrentHashMap vs HashMap
- Window7 64位旗舰版 安装Oracle 11gR2 安装图解
- hdu 1847
- 445. Add Two Numbers II leetcode (list)
- java集合的三大遍历方式
- 工作中关于webview同步cookie遇到的坑
- goole推出图片加载库GLIDE
- 北京天宇联科技有限责任公司—T语言的语法
- Unity实战 RTS3D即时战略游戏开发(十三) 伤害更新信息显示、销毁单位、爆炸效果
- 20.职责链模式
- 初识springboot
- ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57