Leetcode#445(链表)-Add Two Numbers II
来源:互联网 发布:淘宝指南针店铺 编辑:程序博客网 时间:2024/05/27 09:44
题目:
You are given two non-empty linked lists representing two non-negative integers. 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.
思路:
方法一:将两个链表翻转,将两个链表依次相加(进位),最后得到的结果再翻转输出。
通过代码:
class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if(l1==NULL)return l2; else if(l2==NULL)return l1; ListNode* p1 = reverseList(l1); ListNode* p2 = reverseList(l2); ListNode* new_node = NULL; int up=0; int temp=0; int digit=0; ListNode* pre = new ListNode(0); ListNode* m = pre; while(p1!=NULL||p2!=NULL){ if(p1==NULL){ temp=p2->val; p2 = p2->next; } else if(p2==NULL){ temp=p1->val; p1 = p1->next; } else { temp = p1->val+p2->val; p1=p1->next; p2=p2->next; } digit = (up+temp)%10; up = (up+temp)/10; //进位 new_node = new ListNode(digit); m->next = new_node; m=m->next; } if(up>0){ new_node = new ListNode(up); m->next = new_node; m=m->next; } m->next = NULL; return reverseList(pre->next); } ListNode* reverseList(ListNode* head){ if(head==NULL||head->next==NULL)return head; ListNode* pre_node = new ListNode(0); ListNode* cur = head; ListNode* temp = NULL; while(cur!=NULL){ temp = cur; cur = cur->next; temp ->next = pre_node->next; pre_node->next = temp; } return pre_node->next; }};
方法二:(不翻转链表)待续..
0 0
- Leetcode#445(链表)-Add Two Numbers II
- Leetcode Add Two Numbers II 445
- leetcode 445 Add Two Numbers II C++
- LeetCode #445: Add Two Numbers II
- 【leetcode 445】Add Two Numbers II
- LeetCode.2(445) Add Two numbers(II)
- LeetCode#445 Add Two Numbers II (week15)
- LeetCode 445 Add Two Numbers II(栈+链表)
- [LeetCode]Add Two Numbers II
- Add Two Numbers II ---LeetCode
- Leetcode Add Two Numbers II
- LeetCode-Add Two Numbers II
- 445-Add Two Numbers II
- Sum—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
- 树状数组模板
- 判别模型、生成模型与朴素贝叶斯方法及Demo (转载)
- codevs1048 石子归并 动态规划dp
- ubuntu下安装python numpy matplot scipy
- 如何阻止点击两次,发生同样的ajax请求并在页面生成两次重复数据
- Leetcode#445(链表)-Add Two Numbers II
- 微信网页协议发送图片
- xPath技术
- 400. Nth Digit
- HTML5基础复习
- Servlet 和Filter的生命周期
- 全排列 深搜dfs
- 认识<img>标签,为网页插入图片
- 数据结构与算法之二叉树