题目

有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。

给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。

测试样例:

{1,2,3},{3,2,1}
返回:{4,4,4}

解法

个位排在链表首部,进位就可以一位一位的来。要注意的一个是进位问题,另一个是可能位数不匹配的问题。代码如下:

/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};*/
class Plus {
public:
ListNode* plusAB(ListNode* a, ListNode* b) {
// write code here
if(a==NULL && b==NULL)
return NULL;
if(b==NULL)
return a;
if(a==NULL)
return b; ListNode* l3=new ListNode(-1);
ListNode* newnode=l3;
int flag=0;
while(a!=NULL || b!=NULL)
{
int n1=a?a->val:0;
int n2=b?b->val:0;
int sum=n1+n2+flag;
if(sum>=10)
{
flag=1;
sum-=10;
}
else{
flag=0;
}
newnode->next=new ListNode(sum);
newnode=newnode->next;
if(a) a=a->next;
if(b) b=b->next;
} if(flag) newnode->next=new ListNode(1);
return l3->next;
}
};

最新文章

  1. 【USACO 1.2】Name That Number
  2. MSDeploy
  3. ios开发中的Swift面向对象
  4. jQuery学习笔记(2)
  5. 1414. Astronomical Database(STL)
  6. css字体大小设置em与rem的区别
  7. uva 280 - Vertex
  8. 基础总结篇之中的一个:Activity生命周期
  9. sql server存储过程实现批量删除
  10. 利用Eclipse构建SpringMVC项目
  11. jmeter 压力测试安装教程
  12. MySQL 个人学习笔记
  13. redis 在 php 中的应用(string篇)
  14. python中,print函数的sep和end参数
  15. python简说(八)random
  16. 中式台球 规则 ( ChinaBilliards )
  17. spark-submit的参数名称解析
  18. C#验证中文
  19. 使用httplib打开链接
  20. springMVC 第一章

热门文章

  1. POJ3450 Corporate Identity —— 后缀数组 最长公共子序列
  2. win下发现两个有用的快捷键
  3. Ubuntu 17.4下如何安装和配置flash player
  4. 日期时间选择器bootstrap-datetimepicker表单组件
  5. Python: scikit-image binary descriptor
  6. 使用mutt+msmtp做linux邮件客户端
  7. 设置可见GPU方式
  8. POJ3928(树状数组:统计数字出现个数)
  9. 自己在项目中写的一个Jquery插件和Jquery tab 功能
  10. 数据库中rs("ABC")与rs.Fields("ABC").value的差别(Rs是RecordSet对象)