求两个用链表表示的数字和
来源:互联网 发布:淘宝生e经搜不到 编辑:程序博客网 时间:2024/05/16 18:16
例如:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
凡是链表的题目思路一定要缜密。犯了三个错误。
<span style="font-size:14px;">ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { if(!l1) return l2; if(!l2) return l1; ListNode *res,*p1=l1,*p2=l2,*pre; int carry=0,s1=0,s2=0; //在这里进行了<strong>res=l1</strong>结果后来l1和l2交换,导致指向错误的链表! while(p1){s1++;p1=p1->next;} while(p2){s2++;p2=p2->next;} if(s1<s2) swap(l1,l2); res=l1; while(l1 && l2){ int sum = l1->val+l2->val+carry; l1->val= sum%10;//此处用l1->val+l2->val+carry赋值就错了 carry= sum/10; pre=l1; // 容易疏忽,要保留前项 l1=l1->next; l2=l2->next; } if(s1==s2&&carry){ ListNode *p = new ListNode(1); pre->next=p; } else if(carry){ while(l1){ if(l1->val==9){l1->val=0;carry=1;pre=l1;l1=l1->next;} else {l1->val++;carry=0;break;} } if(carry){ ListNode *p = new ListNode(1); pre->next=p; } } return res; }</span>
0 0
- 求两个用链表表示的数字和
- 求两个用链表表示的整数的和
- leetcode【第一周】:单链表表示的两个数字相加
- 【Java】对两个用链表表示的整数求和
- 用链表表示的两个数相加
- 求集合(用有序单链表表示)的并、交和差运算
- 链表表示的数字相加
- 求 以孩子-兄弟链表表示的树 的度、深度、叶结点和边
- 求有序单链表表示集合的交集
- 用链表表示 数字 ,求和 leetcode cc
- 程序员面试金典: 9.2链表 2.5对两个用链表表示的整数求和
- 求两个数字的最大公约数
- 用java实现欧几里得算法求两个数字的最大公约数
- 栈的链表表示
- 图的链表表示
- 队列的链表表示
- 栈的链表表示
- 数据结构2:线性表的链表表示和实现
- 【一些DP】
- 会话cookie中缺少secure属性
- C#3.0 为我们带来什么(1) —— LINQ之Lambda
- 学习2
- 柯文哲《生死的智慧》
- 求两个用链表表示的数字和
- poj3159 Candies
- 有关Android中的java.lang.ClassCastException错误
- Vs2013 类派生+默认值+参数数组,默认值设置不当导致IDE奔溃或编译错误:-1073740791
- linux top详解
- vpn
- windows下使用VS2010编译jpeglib(实际操作vs2008也可以)
- C#网络编程,多个客户端连接服务器端并发送消息
- 指针函数与函数指针的区别