首页 > 其他分享 >LeetCode 2: Add Two Numbers

LeetCode 2: Add Two Numbers

时间:2023-10-27 17:00:04浏览次数:34  
标签:dummy ListNode val next Add l2 Numbers l1 LeetCode

https://leetcode.cn/problems/add-two-numbers/description/
Finally I joined a foreign company's China branch to learn English and start a new journey.
PS: From now for me seems More leisurely, elegant, high-tech, and a little wise(in leadership) compared with (most) locals, not so management/leader-oriented but you must be mature enough to improve yourself. More freedom time is good and also bad. Therefore salary is relatively average(not elite, no definition because a little complex). But for me, it's enough.

Add Two Numbers

#include<iostream>

using namespace std;

struct ListNode
{
	int val;
	ListNode* next;
	ListNode() : val(0), next(nullptr){};
	ListNode(int x) : val(x), next(nullptr){};
	ListNode(int x, ListNode *next) : val(x), next(next){};
};

ListNode* list(vector<int> v)
{
	ListNode* dummy = new ListNode(), *p = dummy;
	for (auto i : v)
	{
		p->next = new ListNode(i);
		p = p->next;
	}
	return dummy->next;
}

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2)
{
	ListNode* dummy = new ListNode(), *p = dummy;
	int carry = 0;
	while(l1 || l2 || carry)
	{
		if (l1)
		{
			carry += l1->val;
			l1 = l1->next;
		}
		if (l2)
		{
			carry += l2->val;
			l2 = l2->next;
		}
		p->next = new ListNode(carry%10);
		carry /= 10;
		p = p->next;

	}
	return dummy->next;
}

int main()
{
	ListNode* l1 = list({9,9,9,9,9,9,9});
	ListNode* l2 = list({9,9,9,9});

	ListNode* res = addTwoNumbers(l1, l2);
	while(res)
	{
		cout << res->val << '\n';
		res = res->next;
	}
}
g++ leetcode2.cpp -std=c++11

-std=c++11 for list initialization {}.

标签:dummy,ListNode,val,next,Add,l2,Numbers,l1,LeetCode
From: https://www.cnblogs.com/qianxinn/p/17792698.html

相关文章

  • paddleDection安装使用
    1,安装环境首先要安装paddlepaddle:安装方式的链接,各种显卡驱动,cuda和cudnn不多说比较基础我本身是在虚拟环境里安装的,所以虚拟环境安装也不影响它调用显卡资源查看paddle是否安装成功:>>>importpaddle>>>paddle.utils.run_check()安装paddleDection:gitclonehttps://g......
  • "git add -A" 和 "git add ." 的区别
    内容来自DOC[https://q.houxu6.top/?s="gitadd-A"和"gitadd."的区别](https://q.houxu6.top/?s="gitadd-A"和"gitadd."的区别)"gitadd[--all|-A]"和"gitadd."的区别这个答案只适用于Git1.x版本。对于Git2.x版本......
  • [Leetcode] 0104. 二叉树的最大深度
    104.二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度 3。......
  • #yyds干货盘点# LeetCode程序员面试金典:生命游戏
    题目根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。给定一个包含m×n个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1即为活细胞(live),或0即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂......
  • #yyds干货盘点# LeetCode程序员面试金典:最小操作次数使数组元素相等 II
    题目给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最小操作数。在一次操作中,你可以使数组中的一个元素加1或者减1。 示例1:输入:nums=[1,2,3]输出:2解释:只需要两次操作(每次操作指南使一个元素加1或减1):[1,2,3] => [2,2,3] => [2,2,2]示......
  • leetcode98-验证二叉搜索树
    一开始没有考虑到左子树的所有节点都要小于根节点,右子树要大于根节点,本质上是边界没有考虑仔细,所以比较时需向上比较(和父节点)而不是向下比较(和子节点比大小)根节点没有父节点,因此初始化时引用最大最小值即可,注意这里的数值范围点击查看代码classSolution{publicboolean......
  • Unity Addressable资源管理方案实战详解
    Unity推出了全新的Addressable的资源管理方案, 全网一夜间觉得不用Addressable感觉自己的资源管理方案会低一个档次,本节我们将详细的分析Addressable资源管理系统。本节主要从以下3个点来进行分析:(1) Addressable的本质是什么?AssetsBundle是否过时了?(2) Assetsbundle使用实......
  • kernel function: the difference beween cdev_add and device_create
     Touseacharacterdriver,firstyoushouldregisteritwiththesystem.Thenyoushouldexposeittotheuserspace. 1.cdev_initandcdev_addfunctionsperformthecharacterdeviceregistration.cdev_addaddsthecharacterdevicetothesystem.When......
  • 将CSS中的cellpadding和cellspacing设置为?
    内容来自DOChttps://q.houxu6.top/?s=将CSS中的cellpadding和cellspacing设置为?在HTML表格中,可以使用CSS设置cellpadding和cellspacing属性,如下所示:<style>table{cellspacing:1;cellpadding:1;}</style><table></table>这样就可以使用CS......
  • cdp Page.addScriptToEvaluateOnNewDocument
     加载新页面之前插入自定义的JavaScript脚本  selenium过环境检测```pythonwithopen(path+'/stealth.min.js')asf:js=f.read()driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{"source":js})``` ......