/**
* 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-未完成的更多相关文章

  1. [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合

    [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...

  2. [占位-未完成]scikit-learn一般实例之十:核岭回归和SVR的比较

    [占位-未完成]scikit-learn一般实例之十:核岭回归和SVR的比较

  3. add-two-numbers

    leetcode开篇~ 问题描述: You are given two linked lists representing two non-negative numbers. The digits a ...

  4. 【leedcode】add-two-numbers

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  5. [未完成]WebService学习第一天学习笔记

    [未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记

  6. [未完成]关于GUI Java图形化界

    "笔记内容完成,整体未完成" GUI 图形化用户界面 用java做图形化用户界面的程序不多,大多用C++和defy.因为,Java做图形化效率低. 首先你要安装一个虚拟机,C++是 ...

  7. BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单

    代码 RetryDelay = 1500; def CancelPendingOrders(exch, orderType): # 取消所有未完成的挂单, 参数1 交易所 参数2 类型 global ...

  8. Leetcode解题-链表(2.2.1)AddTwoNumbers

    1 题目:2.2.1 Add Two Numbers You are given two linked lists representing two non-negative numbers. The ...

  9. 未完成的IT路停在回车键---2014年末总结篇

    时间都去哪儿了?         一晃而过,越来越能体会到这个词的真实感.特别是过了二十岁,这种感觉越来越深刻,越来越强烈,犹如小编做公交车的时候一直向后排排倒的香樟树,还记得有首歌叫时间都哪儿了,而 ...

  10. 10. vue axios 请求未完成时路由跳转报错问题

    axios 请求未完成时路由跳转报错问题 前两天项目基本功能算是完成了,在公司测试时遇到了遇到了一个问题,那就是在请求未完成时进行路由跳转时会报错,想了几种办法来解决,例如加loading,请求拦截, ...

随机推荐

  1. TensorFlow模型转为caffe模型

    最近由于要将训练好的模型移植到硬件上,因此需要将TensorFlow转为caffe模型. caffe模型需要两个文件,一个是定义网络结构的prototxt,一个是存储了参数的caffemodel文件. ...

  2. 使用Hive Rest API 连接HDInsight

    以下连接是微软最新的关于HDInsight中Hive命令的RestAPI示例地址.. 使用 HDInsight .NET SDK 运行 Hive 查询 请使用接口有异常的同学检查是否使用的是下面地址中 ...

  3. 改修jquery支持cmd规范的seajs

    手动包装jquery1.10.2,firebug说$没有定义 define(function (require, exports, module) {//jquery源码module.exports= ...

  4. oracle系统包——dbms_transaction用法

    用于在过程,函数和包中执行sql事务处理语句. 1.read_only用于开始只读事务,其作用与sql语句set transaction read only完全相同2.read_write用于开始读写 ...

  5. 事务的编写规范与Hibernate绑定session

    一.事务的编写规范 1.事务的基本概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事 ...

  6. Java下的i++问题

    在解决一道面试题目时遇到问题. public class Inc { public static void main(String args[]){ Inc inc = new Inc(); int ...

  7. html中 alt 和 title 的区别

    alt 用来给图片来提示的(图片载入失败时以文本形式提示). Title用来给链接文字或普通文字提示的(在鼠标放上去的时候就会提示).

  8. [转]使用依赖关系注入在 ASP.NET Core 中编写干净代码

    本文转自:http://blog.jobbole.com/101270/ 原文出处: Steve Smith    ASP.NET Core 1.0 是 ASP.NET 的完全重新编写,这个新框架的主 ...

  9. git提交空文件夹和删除远程文件

    git提交空文件夹 在文件夹中创建 .gitkeep 文件,文件内容如下 # Ignore everything in this directory * # Except this file !.gi ...

  10. MySQL批量插入多条数据方便测试

    批量插入流程 数据库字段 delimiter create procedure doinsert3() begin declare i int; declare j int; ; ; ) do ins ...