【Leetcode】Add Two Numbers
来源:互联网 发布:怎么取消农村淘宝绑定 编辑:程序博客网 时间:2024/06/05 07:25
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
题意:计算两个由逆序链表表示的正整数之和,并以逆序的链表输出。
这题较简单,为了节约空间,我没有新建结点,而是将结果保存在l1中,需要注意的有,当两个链表都走完时,如果此时的carrier(进位)为1,不要忘记要新建一个结点保存carrier的值。还有就是要用pre来维护链表之间的衔接。
class Solution {public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { // Note: The Solution object is instantiated only once and is reused by each test case. if(l1==NULL) return l2; if(l2==NULL) return l1; ListNode *Node1=l1,*Node2=l2,*pre=l1; int carrier=0; int num; while(Node1!=NULL&&Node2!=NULL) { num=Node1->val+Node2->val+carrier; if(num<10) { Node1->val=num; carrier=0; } else { Node1->val=num-10; carrier=1; } pre=Node1; Node1=Node1->next; Node2=Node2->next; } while(Node1!=NULL) { num=Node1->val+carrier; if(num<10) { Node1->val=num; carrier=0; } else { Node1->val=num-10; carrier=1; } pre=Node1; Node1=Node1->next; } while(Node2!=NULL) { num=Node2->val+carrier; if(num<10) { Node2->val=num; pre->next=Node2; carrier=0; } else { Node2->val=num-10; pre->next=Node2; carrier=1; } pre=Node2; Node2=Node2->next; } if(carrier) { ListNode *node=new ListNode(1); pre->next=node; } return l1; }};
- LeetCode: Add Two Numbers
- LeetCode: Add Two Numbers
- [LeetCode]Add Two Numbers
- LeetCode Add Two Numbers
- Leetcode: Add Two Numbers
- LeetCode : Add Two Numbers
- LeetCode Add Two Numbers
- [LeetCode] Add Two Numbers
- Leetcode : Add Two Numbers
- 【leetcode】Add Two Numbers
- [LeetCode]Add Two Numbers
- leetcode Add Two Numbers
- LeetCode-Add Two Numbers
- [leetcode] Add Two Numbers
- [LeetCode] Add Two Numbers
- LeetCode - Add Two Numbers
- LeetCode | Add Two Numbers
- 【leetcode】Add Two Numbers
- Android 开源柱状图分析实现
- 黑马程序员之安卓开发小技巧
- Linux加载DTS设备节点的过程(以高通8974平台为例)
- PCA的MATLAB实现
- linux逐层删除子目录下的文件
- 【Leetcode】Add Two Numbers
- xcode快捷键
- (4)watdog-流水灯
- ipv6物联网笔记
- JMeter 正则表达式提取器(后置处理器取值)
- linux下C语言多线程编程实例
- ios判断网络可用性
- ORA-01033: ORACLE initialization or shutdown in progress
- 位操作