【LeetCode】1171. 从链表中删去总和值为零的连续节点、面试题 02.05. 链表求和

 作者:小卢

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》


目录

 1171. 从链表中删去总和值为零的连续节点

 面试题 02.05. 链表求和


 1171. 从链表中删去总和值为零的连续节点

 1171. 从链表中删去总和值为零的连续节点

题目描述:

给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。

删除完毕后,请你返回最终结果链表的头节点。

你可以返回任何满足题目要求的答案。

(注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)

 示例:

代码:

struct ListNode* removeZeroSumSublists(struct ListNode* head){
    struct ListNode*newhead=(struct ListNode*)malloc(sizeof(struct ListNode));
    newhead->next=head;
    struct ListNode*cur1=newhead;
    struct ListNode*cur2=head;
    while(cur1)
    {
        int num=0;
        cur2=cur1->next;
        while(cur2)
        {
            num-=cur2->val;
            if(num==0)
            {
                cur1->next=cur2->next;
            }
            cur2=cur2->next;
        }
        cur1=cur1->next;
    }
    return newhead->next;
}

 面试题 02.05. 链表求和

面试题 02.05. 链表求和

题目描述:

给定两个用链表表示的整数,每个节点包含一个数位。

这些数位是反向存放的,也就是个位排在链表首部。

编写函数对这两个整数求和,并用链表形式返回结果。

示例:

思路:

暴力解法是不可以的,两个链表相加的值会大于10的18次方,大于longlong的数据范围

我们可以每位相加,然后计入它的进位值,放到一个新的链表中。

代码: 

struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
    struct ListNode*cur1=l1;
    struct ListNode*cur2=l2;
    struct ListNode*newhead=NULL;
    struct ListNode*tail=NULL;
    int carry=0;//进位值
    while(cur1||cur2)
    {
        int num1=0;
        int num2=0;
        if(cur1)
        num1=cur1->val;
        if(cur2)
        num2=cur2->val;
        int sum=num1+num2+carry;
        //创建一个新的链表
        if(newhead)
        {
            tail->next=(struct ListNode*)malloc(sizeof(struct ListNode));
            tail=tail->next;
            tail->val=sum%10;
            tail->next=NULL;
        }
        else
        {
            newhead=tail=(struct ListNode*)malloc(sizeof(struct ListNode));
            tail->val=sum%10;
            tail->next=NULL;
        }
        carry=sum/10;
        if(cur1)
        cur1=cur1->next;
        if(cur2)
        cur2=cur2->next;
    }
    if(carry>0)//最高位可能大于0,比如:10000000
    {
         tail->next=(struct ListNode*)malloc(sizeof(struct ListNode));
         tail=tail->next;
         tail->val=carry;
         tail->next=NULL;
    }
    return newhead;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【面试题】面试官:如果后端给你 1w 条数据,你如何做展示?

最近一位朋友参加阿b的面试,然后面试官问了她这个问题,我问她咋写的,她一脸淡定的说:“虚拟列表。”大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址:前端面…

tp6实现邮件发送

tp6实现邮件发送 phpMailer 是一个非常强大的 ph p发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。 phpMailer 的特点: 1、在邮件中包含多个 TO、CC、BCC 和 REPLY-TO。2、平台应用广泛,支持的 SMTP…

阿里p8测试总监,让我们用这份《测试用例规范》,再也没加班过

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 固然,编写一份好的测试用例需要:充分的需求分析能力 理论及经验加持,作为测试职场摸爬打滚的老人&…

ElasticSearch 8 学习笔记总结(六)

文章目录一. ES8 的Java API 环境准备二. ES8 的Java API 索引操作三. ES8 的Java API 文档操作1. 文档的 插入 批量插入 删除等操作2. 文档的查询四、异步客户端操作一. ES8 的Java API 环境准备 ES8 废除了Type的概念。为了适应这种数据结构的改变,ES官方从1.7版…

学习 Python 之 Pygame 开发魂斗罗(十一)

学习 Python 之 Pygame 开发魂斗罗(十一)继续编写魂斗罗1. 改写主类函数中的代码顺序2. 修改玩家初始化3. 显示玩家生命值4. 设置玩家碰到敌人死亡5. 设置敌人子弹击中玩家6. 修改updatePlayerPosition()函数逻辑继续编写魂斗罗 在上次的博客学习 Pytho…

(四)HDFS双HA高可用机制

目录 概述 原理 主备切换 小结: 概述 进入到了hadoop 2.x的时代,为了保证namenode上的元数据不会丢失,而且是高可用的,出现了双实例HA的机制 原理 集群里启动两个namenode,一个是active状态(主),一个是standby(备…

HDFS黑名单退役服务器

黑名单:表示在黑名单的主机IP地址不可以,用来存储数据。 企业中:配置黑名单,用来退役服务器。 黑名单配置步骤如下: 1)编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件 添加如下主机名称&…

Spring —— 初学 Spring, 理解控制反转

JavaEE传送门JavaEE Servlet —— Smart Tomcat,以及一些访问出错可能的原因 Servlet —— Servlet API 目录SpringIoC (理解控制反转)传统代码ioc代码DISpring Spring 通常指的是 Spring Farmework (Spring 框架), 它是一个开源框架 用一句话来概括: Spring 是一个包含了众多…

【linux】Linux基本指令(上)

前言: 在之前我们已经简单了介绍了一下【Linux】,包括它的概念,由来啊等进行了讲解,接下来我们就将正式的踏入对其的学习!!! 本文目录👉操作系统的概念1.命令的语法1.1命令介绍1.2选…

ChatGPT告诉你:项目管理能干到60岁吗?

早上好,我是老原。这段时间最火的莫过于ChatGPT,从文章创作到论文写作,甚至编程序,简直厉害的不要不要的。本以为过几天热度就自然消退了,结果是愈演愈烈,热度未减……大家也从一开始得玩乐心态&#xff0c…

python flask项目打包成docker镜像发布

1.编写python flask代码,简单写一个加法的接口,命名为sum.py import json from flask import Flask,request,render_template app Flask(__name__)app.route(/) def index():return hello worldapp.route(/sum,methods[POST]) def correct():a request…

C/C++网络编程笔记Socket

https://www.bilibili.com/video/BV11Z4y157RY/?vd_sourced0030c72c95e04a14c5614c1c0e6159b上面链接是B站的博主教程,源代码来自上面视频,侵删,这里只是做笔记,以供复习和分享。上一篇博客我记录了配置环境并且跑通了&#xff0…

Nginx——Nginx的优化设计

摘要 本博文介绍Nginx的优化设计方向和原理,帮助大家在nginx的使用和优化中提供一个参考的方向,让你的nginx发挥最大性能,节约系统资源。 一、Nginx开启Http2.0的优化 HTTP/2是HTTP协议的最新标准,它是HTTP/1.1的继承者。由于它…

大厂与小厂招人的区别,看完多少有点不敢相信

前两天在头条发了一条招人的感慨,关于大厂招人和小公司招人的区别。 大厂:有影响力,有钱,能够吸引了大量的应聘者。因此,也就有了筛选的资格,比如必须985名校毕业,必须35岁以下,不能…

数据结构与算法这么难,为什么我们还要学习?

文章目录前言1. 数据结构与算法是什么?2. 为什么数据结构与算法很难?3. 如何系统学习数据结构与算法?🍑 复杂度🍑 线性表🍑 树形结构🍑 图🍑 排序🍑 字符串🍑…

【c++】:模拟实现STL模板中的string

文章目录 前言一.string的模拟实现总结前言 上一篇文章我们详细介绍了STL中的string的一些常用的接口,这一篇文章我们将从底层实现string类,当然我们只是实现一些重要的,经常使用的接口,并且不是完全按照STL中的string去走的。 一…

对于从事芯片行业的人来说,有哪些知识是需要储备的?

近两年芯片行业大火,不少同学想要转行,却不知道该如何下手,需要学习哪些基础知识,下面就来看看资深工程师怎么说? 随着工艺的发展,芯片肯定是尺寸越来越小,至于小到什么样的程度是极限&#xf…

【小破站下载工具】Python tkinter 实现网站下载工具,所有数据一键获取

目录前言开发环境本次项目案例步骤先展示下完成品的效果界面导入模块先创建个窗口功能按键主要功能代码编写功能一功能二功能三前言 最近很多同学想问我,怎么把几个代码的功能集合到一起? 很简单,写一个界面就行了,想要哪个代码…

CSS的三大特性

🌟所属专栏:前端只因变凤凰之路🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该系列将持续更新前端的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~👉文章简…

用ChatGPT生成Excel公式,太方便了

ChatGPT 自去年 11 月 30 日 OpenAI 重磅推出以来,这款 AI 聊天机器人迅速成为 AI 界的「当红炸子鸡」。一经发布,不少网友更是痴迷到通宵熬夜和它对话聊天,就为了探究 ChatGPT 的应用天花板在哪里,经过试探不少人发现&#xff0c…
最新文章