链表|2. 两数相加160. 相交链表 234. 回文链表

2. 两数相加

题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

题目链接:2. 两数相加
在这里插入图片描述
代码如下:
逆位相加并进位 每次相加时计算当前节点的值和记录是否进1既可

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {int num=0;//每一次向前进的数字ListNode l1node=l1;ListNode l2node=l2;ListNode result=new ListNode(-1,null);ListNode headnode=result;ListNode resultnode=result;int val=0;while(l1node!=null&&l2node!=null){val=l1node.val+l2node.val+num;if(val>=10){val=val-10;num=1;}else{val=val;num=0;}resultnode.next=new ListNode(val,null);resultnode=resultnode.next;l1node=l1node.next;l2node=l2node.next;}while(l1node!=null){val=l1node.val+num;if(val>=10){val=val-10;num=1;}else{val=val;num=0;}resultnode.next=new ListNode(val,null);resultnode=resultnode.next;l1node=l1node.next;}while(l2node!=null){val=l2node.val+num;if(val>=10){val=val-10;num=1;}else{val=val;num=0;}resultnode.next=new ListNode(val,null);resultnode=resultnode.next;l2node=l2node.next;}if(num==1){resultnode.next=new ListNode(1,null);resultnode=resultnode.next;}return headnode.next;}
}

160. 相交链表

题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

图示两个链表在节点 c1 开始相交:

题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构 。

自定义评测:

评测系统 的输入如下(你设计的程序 不适用 此输入):

intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0
listA - 第一个链表
listB - 第二个链表
skipA - 在 listA 中(从头节点开始)跳到交叉节点的节点数
skipB - 在 listB 中(从头节点开始)跳到交叉节点的节点数
评测系统将根据这些输入创建链式数据结构,并将两个头节点 headA 和 headB 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被 视作正确答案 。
题目链接:160. 相交链表
代码如下:

public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {int lenA=0;int lenB=0;int cha=0;ListNode Anode=headA;ListNode Bnode=headB;while(Anode!=null){lenA++;Anode=Anode.next;}while(Bnode!=null){lenB++;Bnode=Bnode.next;}Anode=headA;Bnode=headB;if(lenA>lenB){cha=lenA-lenB;while(cha>0){Anode=Anode.next;cha--;}}else if(lenA<lenB){cha=lenB-lenA;while(cha>0){Bnode=Bnode.next;cha--;}}while(Anode!=null&Bnode!=null){if(Anode==Bnode){return Anode;}Anode=Anode.next;Bnode=Bnode.next;}return null;}
}

234. 回文链表(重点)

题目:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
题目链接:234. 回文链表
用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题
思路一:将前一部分入栈 后比较两部分链表
思路二:快慢指针找到链表的中点 并将前半部分翻转 逐个比较

class Solution {public boolean isPalindrome(ListNode head) {ListNode slow=head;ListNode fast=head;ListNode pre=null;ListNode nextNode=null;//快慢指针找中点 找的同时翻转链表while(fast!=null&&fast.next!=null){fast=fast.next.next;nextNode=slow.next;slow.next=pre;pre=slow;slow=nextNode;}//判断奇数偶数//fast是否为空 为空是偶数 否则是奇数if(fast!=null){slow=slow.next;}while(pre!=null&&slow!=null){if(pre.val!=slow.val){return false;}pre=pre.next;slow=slow.next;}return true;}
}

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

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

相关文章

极简模式,助力宏观数据监控

随着UWA GOT Online采样的参数越来越多样化&#xff0c;为了提升开发者的使用体验&#xff0c;我们最新推出了三种预设数据采集方案&#xff1a;极简模式、CPU模式、内存模式。该更新旨在降低多数据采集对数据准确性的干扰&#xff0c;同时也为大家提供更精准且有针对性的数据指…

解决使用Flipper无法连接到苹果模拟器,却能连接到安卓

而且这些都是显示正常 可是打开Virtual device一看ios一直在加载中 然后我打开日志看了下&#xff0c;然后各种找配置&#xff0c;项目里边配置改了又改&#xff0c;最后发现是缺少了个插件 //1、 检查 idb 和 idb_companion 是否已经安装 brew tap facebook/fb brew install …

Chart 3 Adreno OpenCL 应用程序开发

文章目录 前言4.1 Android上进行OpenCL应用程序开发4.2 Adreno OpenCL SDK 和 Adreno OpenCL 机器学习 SDK4.3 调试工具和技巧 前言 本章主要介绍如何 debug Adreno OpenCL应用程序 4.1 Android上进行OpenCL应用程序开发 Adreno GPU 主要在 Android 操作系统和部分 Linux 系统…

二叉树刷题Leetcode

文章目录 104.二叉树的最大深度100.相同的树965.单值二叉树 104.二叉树的最大深度 int maxDepth(struct TreeNode* root) {if(rootNULL)return 0; int left1maxDepth(root->left); int right1maxDepth(root->right); return left>right?left:right; }处理二叉树最大深…

感觉到自己思想扭曲了

突然觉得自己思想有点扭曲。 ​起因是近期备婚&#xff0c;需要给男方家人买衣服。问男朋友妹妹衣服预算多少&#xff0c;说是500内&#xff0c;然后想想自己这个新娘子&#xff0c;那一身衣服绞尽脑汁凑满减不到300。再联想到装饰新房&#xff0c;新房买家具&#xff0c;为了省…

TikTok与社会责任:平台如何推动正能量?

近年来&#xff0c;TikTok作为一款备受欢迎的社交媒体平台&#xff0c;不仅令人们畅享创意短视频&#xff0c;更在推动社会正能量方面发挥了积极作用。 本文将深入探讨TikTok在社会责任方面的表现&#xff0c;探究其是如何通过不同的举措推动正向影响&#xff0c;引领社会向更…

【C++】atomic原子操作

std::atomic 文章目录 std::atomic构造函数is_lock_free函数std::atomic_flagatomic_flag实现原子锁atomic_flag实现自旋锁 store函数内存模型load函数exchange函数示例 C中原子变量&#xff08;atomic&#xff09;是一种多线程编程中常用的同步机制&#xff0c;它能够确保对共…

js实现在线预览(PC)图片、pdf、excel、docx

js实现图片预览 参考:添加链接描述 图片预览 本来用的是element-plus自带的组件el-image,但是去不掉缩略图,所以换成了el-imag-viewer组件(图片可拖拽),由于用的vite没有require方法,需要自己处理一下图片才能显示。 参考1:巧用element-ui自带隐藏的图片查看器el-imag…

Java分布式全局唯一Id:id生成要求、为什么不用UUID、生成分布式雪花Id

文章目录 为什么需要分布式全局唯一IdId生成规则部分硬性要求Id生成系统的可用性要求为什么不用UUID生成分布式雪花IdPOM代码示例API生成18位雪花Id生成13位雪花Id 为什么需要分布式全局唯一Id 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如在美团点评的金…

23史上最全版---SQL注入详解

漏洞原因 一些概念&#xff1a; SQL&#xff1a;用于数据库中的标准数据查询语言。 web分为前端和后端&#xff0c;前端负责进行展示&#xff0c;后端负责处理来自前端的请求并提供前端展示的资源。 而数据库就是存储资源的地方。 而服务器获取数据的方法就是使用SQL语句进…

【开源】基于Vue+SpringBoot的数据可视化的智慧河南大屏

项目编号&#xff1a; S 059 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S059&#xff0c;文末获取源码。} 项目编号&#xff1a;S059&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 …

Linux: Ftrace: function_graph 里面有irq处理的函数

Linux: ftrace: echo function_graph &#xff1e; current_tracer 在做这个函数调用图的时候&#xff0c;会发现这个函数调用非常的大&#xff0c;有些是irq的处理函数&#xff0c;也放在其中&#xff0c;前后有标记&#xff1a; Line 18702: 1) < | Line 22335: 1) …

AntV和AntD之间的区别与联系

前言&#xff1a;最近在调研前端的一些框架&#xff0c;技术栈主要是用react&#xff0c;所以找到了2个十分相似解决方案&#xff0c;拿来对比一下&#xff08;antd和antv都是基于react&#xff09; antd对比antv antd antv 解决方案企业级 UI 设计语言数据可视化解决方案提供…

springboot使用Validator参数校验

引用&#xff1a;https://www.cnblogs.com/yang-yz/p/17576507.html Validator校验框架遵循了 jsr-303验证规范(参数校验规范) JSR : java specification requests 为了解决开发人员在校验参数方面&#xff0c;少写代码 依赖&#xff1a; <dependency><groupId>o…

《数字中台建设总体方案》

《数字中台建设总体方案》 制定数字中台战略规划&#xff1a;制定符合企业实际情况的数字中台战略规划&#xff0c;明确建设目标、重点任务和时间表。确定数字中台架构&#xff1a;根据企业业务需求和特点&#xff0c;确定数字中台的架构&#xff0c;包括技术架构、应用架构和数…

20 动态规划解最长回文子序列

问题描述&#xff1a;给定一个字符串s&#xff0c;找到其中最长的回文子序列&#xff0c;并返回该序列的长度&#xff0c;可以假设s的最大长度为1000&#xff1b; 暴力解法&#xff1a;直接两个循环&#xff0c;遍历所有子串&#xff0c;并统计子串的最大长度&#xff1b; pu…

ftp的服务安装配置

安装 yum install -y vsftpd # 是否安装成功 rpm -qa | grep vsftpd # 是否开机启动 systemctl list-unit-files | grep vsftpd # 开机启动 systemctl enable vsftpd.service # ftp端口 netstat -antup | grep ftp # 状态 service vsftpd status service vsftpd start service…

java项目日常运维需要的文档资料

一、前言 java项目开发完成&#xff0c;部署上线&#xff0c;进入项目运维阶段&#xff0c;日常工作需要准备哪些资料和文档?当项目上线后&#xff0c;运行一段时间&#xff0c;或多或少会遇到一些运维上的问题&#xff0c;比如服务器磁盘饱满&#xff0c;服务器CPU&#xff0…

如何理解微服务体系结构中的 CQRS

本文翻译自 How To Understand CQRS In Microservices Architecture&#xff0c;原作者 OLEKSII。 问题描述 在典型的软件应用程序中&#xff0c;有一个负责写入和读取操作的数据存储。通常&#xff0c;应用程序实现一些 CRUD 操作&#xff0c;并且非常简单。你存储了一些东西并…

一文读懂中间件

前言&#xff1a;在程序猿的日常工作中&#xff0c; 经常会提到中间件&#xff0c;然而大家对中间件的理解并不一致&#xff0c;导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品&#xff0c;在不同文献中有着许多不同的中间件定义&#xff0c;包括操…