Leetcode100 链表|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.hqwc.cn/news/257719.html

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

相关文章

腾讯云CentOS8 jenkins war安装jenkins步骤文档

腾讯云CentOS8 jenkins war安装jenkins步骤文档 一、安装jdk 1.1 上传jdk-11.0.20_linux-x64_bin.tar.gz 1.2 解压jdk安装包文件 tar -zxvf jdk*.tar.gz 1.3 在/usr/local 目录下创建java目录 cd /usr/local mkdir java 1.4 切到java目录&#xff0c;把jdk解压文件改名为jd…

二十一章网络通信

计算机网络实现了多台计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据。编写网络应用程序前&#xff0c;首先必须明确所要使用的网络协议…

孩子都能学会的FPGA:第二十五课——用FPGA实现频率计

&#xff08;原创声明&#xff1a;该文是作者的原创&#xff0c;面向对象是FPGA入门者&#xff0c;后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门&#xff0c;作者不光让大家知其然&#xff0c;还要让大家知其所以然&#xff01;每个工程作者都搭建了全自动化的仿…

游戏盾的防御原理以及为什么程序类型更适合接入游戏盾。

游戏盾是一种专门用于游戏服务器的安全防护服务&#xff0c;旨在抵御各种网络攻击。它的原理主要包括以下几个方面&#xff1a; 流量清洗和过滤&#xff1a;游戏盾会对进入游戏服务器的流量进行实时监测、分析和过滤。它通过识别恶意流量和攻击流量&#xff0c;过滤掉其中的攻击…

org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource

DynamicDataSource-CSDN博客 /** Copyright 2002-2020 the original author or authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the L…

样本数量对问卷信度效度分析的影响及应对策略

问卷调研是一种常见的数据收集方法。明确问卷的真实性和效率是保证其靠谱性和有效性的重要一步。但问卷的真实性和品质会受到样本数量的影响吗&#xff1f; 一、问卷信度的认识 1、信度的概念和重要性:在问卷实验中&#xff0c;信度是指问卷测量值的稳定性和一致性。高信度代…

教育心得整理

压抑使人反抗&#xff0c;反抗就是报复&#xff0c;报复就会引起犯罪。要消灭犯罪&#xff0c;我们必须杜绝引起孩子报复心理的行为&#xff0c;更重要的是&#xff0c;我们一定要对孩子表现出来爱与尊重 限制批评的次数限制每次批评的范围限制每次批评的强度 当彼此的信任和…

Ubuntu 安装 CUDA 和 cuDNN 详细步骤

我的Linux系统背景&#xff1a; 系统和驱动都已安装。 系统是centos 8。查看自己操作系统的版本信息&#xff1a;cat /etc/issue或者是 cat /etc/lsb-release 用nvidia-smi可以看到显卡驱动和可支持的最高cuda版本&#xff0c;我的是12.2。驱动版本是535.129.03 首先&#…

Linux学习笔记3 xshell(lnmp)

xshell能连接虚拟机的前提是真机能够ping通虚拟机网址 装OpenSSL依赖文件 [rootlocalhost nginx-1.12.2]# yum -y install openssl pcre-devel 依赖检测[rootlocalhost nginx-1.12.2]# ./configure [rootlocalhost nginx-1.12.2]# yum -y install zlib [rootlocalhost n…

Linus:我休假的时候也会带着电脑,否则会感觉很无聊

目录 Linux 内核最新版本动态 关于成为内核维护者 代码好写&#xff0c;人际关系难处理 内核维护者老龄化 内核中 Rust 的使用 关于 AI 的看法 参考 12.5-12.6 日&#xff0c;Linux 基金会组织的开源峰会&#xff08;OSS&#xff0c;Open Source Summit&#xff09;在日…

Java实现TCP一对一通信,实现UDP群聊通信

TCP一对一通信: 实现服务端对话框&#xff1a; 其中可自由更改对话框的样式 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; public class QqMain extends JFrame implements ActionListener{public static void …

C++_命名空间(namespace)

目录 1、namespace的重要性 2、 namespace的定义及作用 2.1 作用域限定符 3、命名空间域与全局域的关系 4、命名空间的嵌套 5、展开命名空间的方法 5.1 特定展开 5.1 部分展开 5.2 全部展开 结语&#xff1a; 前言&#xff1a; C作为c语言的“升级版”&#xff0c;其在…