1、题目描述

2、分析

首先将链表翻转,然后做加法。

最后将结果链表翻转。

3、代码

 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {

         ListNode* L1 = reverseList( l1 );
ListNode* L2 = reverseList( l2 ); ListNode* head = new ListNode( );
ListNode* result = head;
ListNode* p1 = L1;
ListNode* p2 = L2;
int up = ;
while( p1 != NULL && p2 != NULL )
{
if( p1->val + p2->val + up < )
{
result->next = new ListNode( p1->val + p2->val + up );
up = ;
}else{
result->next = new ListNode( p1->val + p2->val + up - );
up = ;
}
p1 = p1->next;
p2 = p2->next;
result = result->next;
} while( p1 != NULL )
{
if( p1->val + up < )
{
result->next = new ListNode( p1->val + up );
up = ;
}
else
{
result->next = new ListNode( p1->val + up - );
up = ;
}
p1 = p1->next;
result = result->next;
} while( p2 != NULL )
{
if( p2->val + up < )
{
result->next = new ListNode( p2->val + up );
up = ;
}
else
{
result->next = new ListNode( p2->val + up - );
up = ;
}
p2 = p2->next;
result = result ->next;
} if( up == )
{
result->next = new ListNode();
result = result->next;
}
ListNode* re = reverseList( head->next ) ;
return re; } ListNode* reverseList(ListNode* l)
{
ListNode* p1 = l;
ListNode* p2 = l->next;
while( p2 != NULL )
{
ListNode* tmp = p2->next;
p2 ->next = p1;
p1 = p2;
p2 = tmp;
} l->next = NULL ;
return p1;
}

LeetCode 题解之Add Two Numbers II的更多相关文章

  1. 【LeetCode】445. Add Two Numbers II 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 先求和再构成列表 使用栈保存节点数字 类似题目 日期 ...

  2. 《LeetBook》LeetCode题解(2):Add Two Numbers [M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  3. leetcode题解2. Add Two Numbers

    题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...

  4. 【Leetcode】445. Add Two Numbers II

    You are given two non-empty linked lists representing two non-negative integers. The most significan ...

  5. LeetCode题解 #2 Add Two Numbers

    题目大意:使用链表表示的两个整数,计算出其和,以同样的形式返回. Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 ...

  6. LeetCode题解之Add two numbers

    1.题目描述 2.题目描述 题目思路可以参考合并单链表的思路,定义一个全局 进位标志,如果两个数值相加得到需要进位,则将进位标志置为1 . 3.代码 ListNode* addTwoNumbers(L ...

  7. [LeetCode] 445. Add Two Numbers II 两个数字相加之二

    You are given two linked lists representing two non-negative numbers. The most significant digit com ...

  8. LeetCode 445. 两数相加 II(Add Two Numbers II)

    445. 两数相加 II 445. Add Two Numbers II 题目描述 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个 ...

  9. 445. Add Two Numbers II - LeetCode

    Question 445. Add Two Numbers II Solution 题目大意:两个列表相加 思路:构造两个栈,两个列表的数依次入栈,再出栈的时候计算其和作为返回链表的一个节点 Java ...

随机推荐

  1. hbase集群中其中某个regionserver 没有启动

    第一步: date命令查看各个机器的时间 发现linux02机器时间差了2个多小时 第二步:ntpdate pool.ntp.org 修改错误时间的机器 第三步: 重启 hbase

  2. 【数组】Maximum Product Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  3. Go pprof和火焰图

    Profiling 在计算机性能调试领域里,profiling 就是对应用的画像,这里画像就是应用使用 CPU 和内存的情况.也就是说应用使用了多少 CPU 资源?都是哪些部分在使用?每个函数使用的比 ...

  4. word黑底白字

    我们在使用word文档编辑文件时,有时候希望某段文字采用黑底白字,以区分其他段落的白底黑字从而达到强调的效果. 方法是: 1. 选中待处理的段落. 2. 点击“设计”选项卡. 3. 找到“设计”选下卡 ...

  5. linux xargs 命令详解

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...

  6. Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)

    出自  http://www.jb51.net/article/93125.htm

  7. DotNetBar 使用笔记

    1.删除表格的某一行数据,必须是VirtualMode  = false 的时候才生效,不然就只是灰色 SuperDBG_Right.PrimaryGrid.SetDeletedRows(SuperD ...

  8. Jsp&Servlet入门级项目全程实录第2讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.导入jquery-easyui-1.3.3包( http://www.jeasyui.com/) 2.在页面导入e ...

  9. Linux系统修改Mysql密码

    一.拥有原来的myql的root的密码: 方法一: 在mysql系统外,使用mysqladmin mysqladmin -u root -p password "test123" ...

  10. Struts2 学习笔记--Action Method--接收参数

    struts2中的路径问题 注意:在jsp中”/”表示tomcat服务器的根目录,在struts.xml配置文件中”/”表示webapp的根路径,即MyEclipse web项目中的WebRoot路径 ...