LeetCode之两数相加

1.题目

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

2. 代码

  • 函数
  1. 定义一个可随时增加的ListNode方法: (前提是struct中已经定义了该构造函数)
    ListNode *newListNode = new ListNode(n);
    curr -> next = new ListNode(m)
  • 核心思想
  1. 细节问题需要注意:
    1》最后返回的是newListNode->next; 因为返回的依然是倒序
    2》核心是sum+=count后创建新的ListNode的空间开辟 和 carry位的更新。 sum的重新定义为0
    3》最后别忘了万一出现新的进位时,carry = 1,再开辟新的
    4》p和q分开来加!!!!!!!!!!!!!!!!!!!!!!!!

/*** 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) {//第一步: 初始化数据ListNode* newListNode = new ListNode(-1);;ListNode* p = l1, *q = l2, *curr = newListNode;int carry = 0, sum = 0;//第二步: 通过逐位相加来得到结果while((q != NULL) || (p != NULL)) {sum = 0;                      //最重要的!!!! if( p != NULL ) {sum += p->val;p = p-> next;}if( q != NULL ) {sum += q->val;q = q -> next;}sum += carry;curr -> next = new ListNode(sum%10);curr = curr -> next;carry = sum >= 10 ? 1 : 0;       //是 >= 等于号别忘了}if (carry == 1) {curr -> next = new ListNode(1);}return newListNode->next;     //输出的不是curr的next}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 419. 甲板上的战舰

1. 题目 给定一个二维的甲板, 请计算其中有多少艘战舰。 战舰用 X表示,空位用 .表示。 你需要遵守以下规则: 给你一个有效的甲板,仅由战舰或者空位组成。 战舰只能水平或者垂直放置。 换句话说, 战舰只能由 1xN (1 行, N 列)组…

python展开 c函数中的宏预处理_C 语言常用的预处理-宏函数

#include // 宏函数 三目运算符#define MAX(A, B) A>B?A:B//宏函数 多行 添加\直接回车#define LOOP(FROM, TO, CONTENT)\for(int iFROM;iCONTENT\}//宏函数不需要确定参数类型 普通函数如下int _max(int a, int b) {return a > b ? a : b;}//有相同前缀void cSayHi() …

LeetCode之无重复字符的最长子串

1. 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2:输入: "bbbbb" 输出: 1 解释: 因为无重复…

LeetCode 434. 字符串中的单词数

1. 题目 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: "Hello, my name is John" 输出: 5 解释: 这里的单词是指连续的不是空格的字符,所…

Symbian中的新手问题整理(二)

最近变得有点懒了,博客也一直没有更新,最近在Symbian的论坛呆的时间比较多,但还是觉得博客园的博客系统最好最稳定。 1、关于Symbian 3rd以后的能力问题 Symbian也是从3rd后才引入签名的机制,这也就涉及到一个签名对应的能力问题。…

PAT乙级1004

题目 读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号…

LeetCode 441. 排列硬币(数学解方程)

1. 题目 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可形成完整阶梯行的总行数。 n 是一个非负整数,并且在32位有符号整型的范围内。 示例 1: n 5 硬币可排列成以下…

哭笑不得

1.再逼我,再逼我就装死给你看! 2.老子不但有车,还是自行的! 3.喜欢的话哥我给你买...(意识到对方的怒意后)啊不,是“哥,我给您买!” 4.鄙视我的人那么多,你算老几? 5.打死我也不说,你还没使美人儿计呢! 6.我不但手气好,脚气也不错…

python3.6是用来干嘛的_学 Python 都用来干嘛的?

很多人跟你一样,只管闷头学,却不知道为什么去学,往往的理由是:“简单啊”、“收入高啊”、“人生苦短,我用Python”,好吧,那我这里简述下学了Python可以干嘛。当然是为了赚钱啊,哈哈…

PAT真题乙类1006 换个格式输出整数

一、题目 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12...n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 2 个“百”、3 个“十…

[zz from newsmth] 王大牛的Memory Model reading list

发信人: yifanw (王轶凡), 信区: CPlusPlus 标 题: 内存模型之参考文献 发信站: 水木社区 (Sun Mar 15 22:51:46 2009), 站内 前两篇文章&#xff0c;希望大家多多带着怀疑的态度来读&#xff0c;很有可能有错误。:) 如果想进一步了解&#xff0c;可以看如下文献&#xff1a; …

python简易_Python简易爬虫

Python小爬虫——贴吧图片的爬取在对Python有了一定的基础学习后&#xff0c;进行贴吧图片抓取小程序的编写。目标&#xff1a;首先肯定要实现图片抓取这个基本功能然后实现对用户所给的链接进行抓取最后要有一定的交互&#xff0c;程序不能太傻吧一、页面获取要让python可以进…

PAT乙类1007之素数对猜想

一、题目 让我们定义d​n为&#xff1a;d​npn1−pn&#xff0c;其中p​i是第i个素数。显然有d11&#xff0c;且对于n>1有d​n是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10​^5)&#xff0c;请计算不超过N的满足猜想的素数对的…

case2

Codeuse dbTempcreate table test(Pid int identity(1,1) not null primary key,Years datetime,IsFirstSixMonths int default(0), --0表示上半年1表示下半年--TotalCome int) insert test select 2007-1-1,0,50union select 2007-3-1,0,60unionselect 2007-12-1,1,80union se…

LeetCode 916. 单词子集(计数)

1. 题目 我们给出两个单词数组 A 和 B。每个单词都是一串小写字母。 现在&#xff0c;如果 b 中的每个字母都出现在 a 中&#xff0c;包括重复出现的字母&#xff0c;那么称单词 b 是单词 a 的子集。 例如&#xff0c;“wrr” 是 “warrior” 的子集&#xff0c;但不是 “wor…

身份证城市代号python_身份证号码的地区代码分别是什么?

展开全部身份证号码的地区代码分别是&#xff1a;1、东北地区&#xff1a; 辽宁省|32313133353236313431303231363533e78988e69d8331333366303835210000&#xff0c;吉林省|220000&#xff0c;黑龙江省|230000&#xff0c;2、华北地区&#xff1a;北京市|110000&#xff0c;天津…

PAT乙类1008之数组元素循环右移问题

一、题目 一个数组A中存有N&#xff08;>0&#xff09;个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M&#xff08;≥0&#xff09;个位置&#xff0c;即将A中的数据由&#xff08;A​0A1⋯AN−1变换为&#xff08;A​N−M⋯A​N−1A0A…

LeetCode 987. 二叉树的垂序遍历(递归/循环)

1. 题目 给定二叉树&#xff0c;按垂序遍历返回其结点值。 对位于 (X, Y) 的每个结点而言&#xff0c;其左右子结点分别位于 (X-1, Y-1) 和 (X1, Y-1)。 把一条垂线从 X -infinity 移动到 X infinity &#xff0c;每当该垂线与结点接触时&#xff0c;我们按从上到下的顺序…

Workflow WF Reference Links for 2009-03-20

Workflow Reference Links: 1. Model Portability in BPMN 2.0 Bruce Silver又再一次对BPMN2.0规范中的“可导出交换”能力发表了个人观点。银狐999对这篇文章做了一个博文导读。 2. BPMN Semantics “Vague” or Just Hard to Code? 有关BPMN与BPEL的映射的争论在继续…

PAT乙类1005之继续(3n+1)猜想 (25 分)

一、 题目 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复杂。 当我们验证卡拉兹猜想的时候&#xff0c;为了避免重复计算&#xff0c;可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&#xff0c;我们需要计算 3、5、8、…