M-AddTwoNumbers-未完成
/**
* 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) {
// 这一题特别能考察思维的全面性,很容易就指针越界; /*
* 问题1:虽然两段判断针对两种不同的情况,但当上一个判断语句中,已经对指针进行操作;
* 运行到第二段判断时,很可能由于指针位置变化,当前的判断出现越界
*/ /*
* 问题2:return函数只存在于判断模块中的时候,如果判断模块不满足,则运行到最后可能造成无返回值
*/ /*
* 注意:这种指针做入参的情况,一般都新建一个指针,不要在原指针上操作,要养成好习惯;
* 同时,新的链表和原链表不同,要重新建立结点;
*/ /*
* 问题3:当判断太多时,可以使用比较判断语句,增加可读性 cur = (l1 == NULL ? l1 : l2);
*/ int flag = ;
ListNode *head = l1; if (!l1)
return l2;
if (!l2)
return l1; while (true) {
l1->val += l2->val + flag;
if (l1->val > ) {
l1->val -= ;
flag = ;
} else {
flag = ;
}
if (l1->next && l2->next) {
l1 = l1->next;
l2 = l2->next;
} else {
break;
}
} if (l1->next && !l2->next) {
while (l1->next) {
l1 = l1->next;
l1->val += flag;
if (l1->val > ) {
l1->val -= ;
flag = ;
} else {
flag = ;
}
}
if (flag == ) {
ListNode *newNode = new ListNode();
l1->next = newNode;
}
return head;
} if (!l1->next && l2->next) {
l1->next = l2->next;
while (l2->next) {
l2 = l2->next;
l2->val += flag;
if (l2->val > ) {
l2->val -= ;
flag = ;
} else {
flag = ;
}
}
if (flag == ) {
ListNode *newNode = new ListNode();
l2->next = newNode;
}
return head;
} if(!l1->next && !l2->next && flag == ) {
ListNode *newNode = new ListNode();
l1->next = newNode;
}
return head;
}
};
再做;
M-AddTwoNumbers-未完成的更多相关文章
- [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合
[占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...
- [占位-未完成]scikit-learn一般实例之十:核岭回归和SVR的比较
[占位-未完成]scikit-learn一般实例之十:核岭回归和SVR的比较
- add-two-numbers
leetcode开篇~ 问题描述: You are given two linked lists representing two non-negative numbers. The digits a ...
- 【leedcode】add-two-numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- [未完成]WebService学习第一天学习笔记
[未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记
- [未完成]关于GUI Java图形化界
"笔记内容完成,整体未完成" GUI 图形化用户界面 用java做图形化用户界面的程序不多,大多用C++和defy.因为,Java做图形化效率低. 首先你要安装一个虚拟机,C++是 ...
- BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单
代码 RetryDelay = 1500; def CancelPendingOrders(exch, orderType): # 取消所有未完成的挂单, 参数1 交易所 参数2 类型 global ...
- Leetcode解题-链表(2.2.1)AddTwoNumbers
1 题目:2.2.1 Add Two Numbers You are given two linked lists representing two non-negative numbers. The ...
- 未完成的IT路停在回车键---2014年末总结篇
时间都去哪儿了? 一晃而过,越来越能体会到这个词的真实感.特别是过了二十岁,这种感觉越来越深刻,越来越强烈,犹如小编做公交车的时候一直向后排排倒的香樟树,还记得有首歌叫时间都哪儿了,而 ...
- 10. vue axios 请求未完成时路由跳转报错问题
axios 请求未完成时路由跳转报错问题 前两天项目基本功能算是完成了,在公司测试时遇到了遇到了一个问题,那就是在请求未完成时进行路由跳转时会报错,想了几种办法来解决,例如加loading,请求拦截, ...
随机推荐
- python调用另一个.py文件中的类和函数
同一文件夹下的调用 1.调用函数 A.py文件如下:def add(x,y): print('和为:%d'%(x+y)) 在B.py文件中调用A.py的add函数如下: import AA.ad ...
- crypto-js计算文件的sha256值
1. 要在浏览器中计算出文件的sha256或md5值,基本思路就是使用HTML5的FileReader接口把文件读取到内存(readAsArrayBuffer),然后获取文件的二进制内容,然后获取文件 ...
- Class and Instance Variables In Ruby
https://github.com/unixc3t/mydoc/blob/master/blog/caiv.md
- ruby中的retry和redo
# retry用于处理异常中的begin/end代码块中,如果发生异常会重新运行 begin 和 rescue 之间的代码#当retry 被调用的话,begin 和 rescue 之间所有的代码都会被 ...
- html的framset使用
frameset主要用在显示多个页面的需求下: 看代码: <html> <head> <title>html frameset test</title> ...
- h5空白页面过渡加载
h5空白页面过渡加载 页面第一部分内容是图片,考虑到手机图片加载慢,想用简单.转化为base64的图片过渡 开始尝试将图片转为灰度图片,结果还是很大. 后来选取重要元素,保存2位的png,尺寸是494 ...
- PostgreSQL On Windows Process Connection Performance
本文主要对PostgreSql在Windows下的连接测试. 测试环境: Win7 x64, PostgreSql 10.1 x64 测试语言: VS2015 C# 因为Pg的数据库连接是开启进程来处 ...
- java 并发(五)---AbstractQueuedSynchronizer(3)
文章代码分析和部分图片来自参考文章 问题 : CountDownLatch 和 CyclicBarrier 的区别 认识 CountDownLatch 分析这个类,首先了解一下它所可以 ...
- log4js日志
安装log4js:npm install log4js express中配置log4js中间件: var log = require("./modules/utils/logUtil.js& ...
- JavaMail 邮件发送
jar包部署 /** * 通过SMTP进行邮件集成 */ public class CmpSendMail { // 邮件发送服务器主机 private final static String HOS ...