leetcode 2 Add Two Numbers【更新】
来源:互联网 发布:威廉.菲德内尔 知乎 编辑:程序博客网 时间:2024/05/29 21:28
之前没有提交通过,主要可能是因为没有理解leetcode网站上的链表是从头节点开始存数据的,今天又重新看了一下,重新提交后通过;
需要解决的最棘手的问题是[9] +[2,9]这样的输入;
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode* l3, *pnew, *tail,*p;l3 = (struct ListNode*)malloc(sizeof(struct ListNode));//创建头节点。int tmp = 0;int flag = 1;if (l3 == NULL) { //创建失败返回printf("创建失败!");return NULL;}l3->next = NULL; //头节点指针域置NULLtail = l3; // 开始时尾指针指向头节点 将新建的头节点当做最后一个节点while ((l1 != NULL) || (l2 != NULL) || (tmp != 0))//满足其中一个条件就继续{ //创建链表pnew = (struct ListNode*)malloc(sizeof(struct ListNode)); //创建新节点if (pnew == NULL) { //创建失败返回printf("创建失败!");return NULL;}if (l1 != NULL&&l2 != NULL){pnew->val = l1->val + l2->val + tmp;tmp = 0;}if (l1 == NULL&l2 == NULL&tmp!=0)//两个链表节点数相等,到最后一个节点后产生进位{pnew->val = tmp;tmp = 0;}if (l1!=NULL&&l2==NULL)//flag2 == 1{pnew->val = l1->val + tmp;tmp = 0;}if (l1 == NULL&&l2 != NULL){pnew->val = l2->val + tmp;tmp = 0;}if (l1 == NULL&l2 == NULL&&tmp != 0){pnew->val = tmp;tmp = 0;}if (pnew->val >= 10){pnew->val = pnew->val - 10;tmp = 1;}pnew->next = NULL; //新节点指针域置NULL 当前新建的节点的指针域指向NULLtail->next = pnew; //新节点插入到表尾 上一个节点的指针域指向当前新建的节点tail = pnew; //为指针指向当前的尾节点,将当前新建的节点当做最后一个节点if (l1 != NULL&&l2 != NULL){l1 = l1->next;l2 = l2->next;}else if (l1 == NULL&l2 == NULL)//保证while可以进来{l1 = l1;l2 = l2;}else if (l1 != NULL&&l2 == NULL){l1 = l1->next;l2 = l2;}else{l1 = l1;l2 = l2->next;}}return l3->next;}
阅读全文
0 0
- leetcode 2 Add Two Numbers【更新】
- LeetCode 2 - Add Two Numbers
- LeetCode 2: Add Two Numbers
- Leetcode: Add Two Numbers (2)
- [leetcode 2] Add Two Numbers
- [Leetcode] 2 - Add Two Numbers
- LeetCode 2:《Add Two Numbers》
- LeetCode | #2 Add Two Numbers
- LeetCode 2 Add Two Numbers
- [Leetcode]2Add Two Numbers
- leetcode #2 Add Two Numbers
- leetcode-2 Add Two Numbers
- LeetCode 2 Add Two Numbers
- [leetcode] #2 Add Two Numbers
- LeetCode-2 Add Two Numbers
- LeetCode-2-Add Two Numbers
- Leetcode[2] Add Two Numbers
- LeetCode 2 Add Two Numbers
- ofbiz总结——当有很多条消息时右下角“显示全部”乱码
- [python3]爬虫实战一之爬取糗事百科段子
- Android O(8.0)音频write数据流程变化(HIDL)
- 秋招面试经验分享-阿里,cvte,迅雷,网龙,美团,已拿Offer
- 一个简单的多线程的大数据信息检索程序
- leetcode 2 Add Two Numbers【更新】
- 字符编码详解——彻底理解掌握编码知识,“乱码”不复存在
- 数据库左连接右连接
- Jzoj4787 数格子
- bower安装完成后,无法执行bower install jquery等命令?
- vue 2.0 v-for 初体验
- 二分k均值聚类
- redis应用【二】 -- redis的几种数据结构
- 人脑理解递归