首先,演示一个错误的reverList

 class Solution {
public:
ListNode* reverse(ListNode* root)
{
if(NULL == root)
return NULL;
ListNode* pCur = root;
ListNode* pNext = root->next; while(pNext)
{
pNext = pNext->next;
pCur->next->next = pCur;
pCur = pCur->next;
}
root->next = NULL;
return pCur;
} };

(2)--------->(3)-------->(4)----------->(5)--------->NULL

首先pCur指向2,pNext指向3;

pNext=pNext->next; pNext指向4,

pCur->next->next = pCur,然后3--->4 的指针断了, 从此pCur就自己转圈了。。。

正确的reverseList

ListNode * reverseList(ListNode* head)
{
if(head == NULL) return NULL; ListNode *pre = NULL;
ListNode *cur = head;
ListNode *next = NULL; while(cur)
{
next = cur->next;
cur->next = pre; pre = cur;
cur = next;
} return pre; }

这个题目也不难,注意dummy节点的使用,另外,记得最后carrybit的处理

/**
* 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)
{
if(l1 == NULL)
return l2;
if(l2 == NULL)
return l1; ListNode* p1 = l1;
ListNode* p2 = l2;
ListNode dummy(-);
ListNode* pNew = &dummy;
int carry = ;
int sum = ; while(p1 && p2)
{
sum = (p1->val + p2->val + carry)%;
carry= (p1->val + p2->val + carry)/;
pNew->next = new ListNode(sum);
pNew = pNew->next;
p1 = p1->next;
p2 = p2->next;
} while(p1)
{
sum = (p1->val + carry)%;
carry= (p1->val + carry)/;
pNew->next = new ListNode(sum);
pNew = pNew->next;
p1 = p1->next;
} while(p2)
{
sum = (p2->val + carry)%;
carry= (p2->val + carry)/;
pNew->next = new ListNode(sum);
pNew = pNew->next;
p2 = p2->next;
} if(carry)
{
pNew->next = new ListNode(carry);
pNew = pNew->next;
} return dummy.next;
} };

[LeetCode] Add Two Numbers(stored in List)的更多相关文章

  1. [LeetCode] Add Two Numbers 两个数字相加

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

  2. LeetCode: Add Two Numbers 解题报告

    Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are ...

  3. [LeetCode] Add Two Numbers题解

    Add Two Numbers: You are given two non-empty linked lists representing two non-negative integers. Th ...

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

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

  5. LeetCode Add Two Numbers II

    原题链接在这里:https://leetcode.com/problems/add-two-numbers-ii/ 题目: You are given two linked lists represe ...

  6. Leetcode:Add Two Numbers分析和实现

    Add Two Numbers这个问题的意思是,提供两条链表,每条链表表示一个十进制整数,其每一位对应链表的一个结点.比如345表示为链表5->4->3.而我们需要做的就是将两条链表代表的 ...

  7. [Leetcode] Add two numbers 两数之和

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

  8. [LeetCode] Add Two Numbers

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

  9. LeetCode——Add Two Numbers

    Question:You are given two linked lists representing two non-negative numbers. The digits are stored ...

随机推荐

  1. 面向对象编程课程(OOP)第二单元总结

    一.设计策略 第一次作业(傻瓜式电梯): 由于是第一次写多线程作业,许多的知识还处在理论阶段,所以第一次作业写得非常的朴实无华.整个程序总共有四个类,Main类负责通过电梯类实例化一个电梯,然后通过w ...

  2. python3下安装aiohttp遇到过的那些坑

    python3下安装aiohttp遇到过的那些坑 最近需要用到aiohttp这个库,在安装过程中遇到很多坑.google.baidu后,依然没有找到合适的解决方案. 后来通过去python官方的PyP ...

  3. Sqli-labs less 3

    Less-3 我们使用?id=' 注入代码后,我们得到像这样的一个错误: MySQL server version for the right syntax to use near "&qu ...

  4. 利用FusionCharts制作统计报表

    今天在开发中需要用到统计报表,于是就查找了一下FusionCharts的用法,下面来总结一下利用FusionCharts怎么制作统计报表 1.建表 首先要建立所要统计报表的表,表的字段越多,统计的维度 ...

  5. 【BZOJ 1216】 1216: [HNOI2003]操作系统 (模拟+优先队列)

    1216: [HNOI2003]操作系统 Description 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自 ...

  6. [BZOJ1494]生成树计数

    [BZOJ1494] [NOI2007]生成树计数 Description 最近,小栋在无向连通图的生成树个数计算方面有了惊人的进展,他发现:·n个结点的环的生成树个数为n.·n个结点的完全图的生成树 ...

  7. BZOJ 1132 [POI2008]Tro(极角排序)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1132 [题目大意] 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和(N&l ...

  8. Perl读写文件&字符串操作

    Perl中读写文件的方法非常简单,可以使用open或sysopen函数来打开文件,linux下运行perl脚本只需 ./XX.pl 或 perl XX.pl. 读文件 open(文件句柄, " ...

  9. Problem C: 更改大小写

    #include<stdio.h> int main() { ; ]; gets(a); while(a[i]!='\0') { ; ++i; } printf("%s" ...

  10. JAVA EE 中之AJAX 无刷新地区下拉列表三级联动

    JSP页面 <html> <head> <meta http-equiv="Content-Type" content="text/html ...