2. Add Two Numbers
来源:互联网 发布:sql删除语句 编辑:程序博客网 时间:2024/06/16 22:36
/*本算法要考虑三种情况,第一种就是两个链表长度相等,但是相加后最后一个会产生进位,第二种就是相加后不产生进位,第三种就是链表长度不相等。*/
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *head = new ListNode(0);ListNode *p = head,*q=NULL;//q记住当前的结点的前驱,以便删除当前结点int flag = 0;//判断是否产生进位的标志;while (l1!= NULL||l2!= NULL){if (l1 != NULL && l2 != NULL){int sum = l1->val + l2->val + flag; flag=sum/10;int Lsum = sum % 10;p->val = Lsum;q = p;p->next = new ListNode(0);p = p->next;l1 = l1->next;l2 = l2->next;}else if (l1 == NULL&&l2 != NULL){int sum = l2->val + flag; flag=sum/10;int Lsum = sum % 10;p->val = Lsum;q = p;p->next = new ListNode(0);p = p->next;l2=l2->next;}else{int sum = l1->val + flag; flag=sum/10;int Lsum = sum % 10;p->val = Lsum;q = p;p->next = new ListNode(0);p = p->next;l1=l1->next;}}if (l1 == NULL&&l2 == NULL){if (flag == 0)//如果不产生进位,将要删除多生成的一个结点;{delete p;q->next = NULL;}elsep->val = flag;return head;} } };
0 0
- 2.Add Two Numbers
- 2.Add Two Numbers
- 2.Add Two Numbers
- 2.Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2.Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- 2.Add Two Numbers
- 2. Add Two Numbers
- 2. Add Two Numbers
- rman备份出现ORA-19625
- FLV学习(四)FlvParser源码阅读(2)相关的数据结构
- JDBC--实例代码
- Spring Boot 注解启动的两种方式
- flask一次request请求过程 基于tag0.1
- 2. Add Two Numbers
- whole-genome-sequencing Data Analysis 学习笔记3: 测试数据及参考基因组的准备
- sql条件查询
- python virtualenv flask
- 如何写好 Git commit messages
- js建造者模式
- java安全架构____java DSA数字签名原理
- 【Codeforces 776 C Molly's Chemicals】+ 前缀和 + map
- html标签详细讲解表