链表求和
来源:互联网 发布:0信誉淘宝店铺转让 编辑:程序博客网 时间:2024/05/21 10:34
描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反
的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null
实现思路:首先如果两个链表当中有一个是空链表,就把另一个链表原样输出。另外,还要判断两个链表当中的元素个数的多少,方便进行加和运算。当两个对应元素相加,和大于十的时候,要把十位数字写在链表的下一个位置。
代码:/**
ListNode *addLists(ListNode *l1, ListNode *l2) {
// write your code here
if (l1 == NULL)
return l2;
if (l2 == NULL)return l1;
int c = 0;
int sum = 0;
ListNode *head = new ListNode(0);
ListNode *p = head;
while (l1 != NULL && l2 != NULL) {
sum = l1->val+l2->val + c;
c = sum/10;
sum = sum%10;
p->next = new ListNode(sum);
p = p->next;
l1 = l1->next;
l2 = l2->next;
}
while (l1 != NULL) {
sum = l1->val + c;
c = sum/10;
sum = sum%10;
p->next = new ListNode(sum);
p = p->next;
l1 = l1->next;
}
while (l2 != NULL) {
sum = l2->val + c;
c = sum/10;
sum = sum%10;
p->next = new ListNode(sum);
p = p->next;
l2 = l2->next;
}
if (c != 0) p->next = new ListNode(c);
return head->next;
}
};
做题感想:这道题看起来很简单,可是做起来觉得并不容易。前面的几种情况还好,到了后面元素相加的时候,就一直存在着wrong answer,总是有数据通不过。后来弯弯转转才改对。
- 链表求和 & 二进制求和
- 链表多项式求和
- 链表求和
- LintCode 链表求和
- 链表求和
- lintcode ----链表求和
- 链表求和
- 链表求和
- 链表求和
- 链表求和
- 链表求和
- 链表求和
- 链表求和
- 链表求和
- LintCode 链表求和
- 链表求和-LintCode
- 链表求和
- 链表求和
- 欢迎使用CSDN-markdown编辑器
- 一个 react+redux 工程实例
- 从零开始的Unity 3D(1)
- 十、基于xml配置的AOP
- JAVA从键盘读取字符,进行统计
- 链表求和
- Shiro基础学习(一) 权限管理
- Leetcode刷题(13)
- 十一、基于注解的AOP
- Android回调函数机制那点事
- servlet中请求转发forword与重定向sendredirect区别
- 基于Udp的永远在线业务传输心跳数据包的方法
- realloc,malloc,calloc的区别
- 高阶篇:4.3)DFMEA设计失效模式和失效后果分析