牛客链表刷题(二)

目录

题目一:合并两个有序链表

        代码:

题目二:合并k个有序链表

        代码:

题目三:判断链表中是否有环

        代码:

题目四:链表中环的入口结点

        代码:


题目一:合并两个有序链表

        代码:

import java.util.*;/** public class ListNode {*   int val;*   ListNode next = null;*   public ListNode(int val) {*     this.val = val;*   }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类*/public ListNode Merge (ListNode pHead1, ListNode pHead2) {if(pHead1==null) return pHead2;if(pHead2==null) return pHead1;// write code hereListNode result=null;ListNode index1=pHead1;ListNode index2=pHead2;if(index1.val<index2.val){result=index1;index1=index1.next;}else{result=index2;index2=index2.next;}ListNode last=result;while(index1!=null && index2!=null){if(index1.val<index2.val){last.next=index1;index1=index1.next;}else{last.next=index2;index2=index2.next;}last=last.next;}if(index1==null){last.next=index2;}if(index2==null){last.next=index1;}return result;}
}

题目二:合并k个有序链表

        代码:

        利用的是“归并排序”的思路。

import java.util.*;/** public class ListNode {*   int val;*   ListNode next = null;*   public ListNode(int val) {*     this.val = val;*   }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param lists ListNode类ArrayList* @return ListNode类*/public ListNode mergeKLists (ArrayList<ListNode> lists) {// write code herereturn divideMerge(lists,0,lists.size()-1);}//划分合并区间public ListNode divideMerge(ArrayList<ListNode> lists,int left,int right){if(left>right) return null;else if(left==right) return lists.get(left);else{int mid=(left+right)/2;return Merge(divideMerge(lists,left,mid),divideMerge(lists,mid+1,right));}}//合并两个有序链表public ListNode Merge (ListNode pHead1, ListNode pHead2) {if (pHead1 == null) return pHead2;if (pHead2 == null) return pHead1;// write code hereListNode result = null;ListNode index1 = pHead1;ListNode index2 = pHead2;if (index1.val < index2.val) {result = index1;index1 = index1.next;} else {result = index2;index2 = index2.next;}ListNode last = result;while (index1 != null && index2 != null) {if (index1.val < index2.val) {last.next = index1;index1 = index1.next;} else {last.next = index2;index2 = index2.next;}last = last.next;}if (index1 == null) {last.next = index2;}if (index2 == null) {last.next = index1;}return result;}
}

题目三:判断链表中是否有环

        代码:

        利用的是双指针(快慢指针)的思路。

import java.util.*;
/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public boolean hasCycle(ListNode head) {if(head==null || head.next==null){return false;}ListNode fast=head;ListNode low=head;while(fast!=null && fast.next!=null){fast=fast.next.next;low=low.next;if(fast==null) return false;if(fast==low) return true;}return false;}
}

题目四:链表中环的入口结点

        代码:

        快慢指针的思路

import java.util.*;
/*public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}
*/
public class Solution {public ListNode EntryNodeOfLoop(ListNode pHead) {if (pHead == null || pHead.next == null) {return null;}ListNode fast = pHead;ListNode low = pHead;while (fast != null && fast.next != null) {fast = fast.next.next;low = low.next;if (fast == low) break;}if(fast==null) return null;low=pHead;while(low != fast){fast=fast.next;low=low.next;}return fast;}
}

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

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

相关文章

Redis专题----2

一.主从复制 从服务器连接主服务器,发送SYNC命令.主服务器接收到SYNC命令后,执行命令生成RDB文件并使用缓冲区记录此后执行的所有写命令.主服务器执行完后,向所有的从服务器发送快照文件,并在发送期间继续记录被执行的写命令.从服务器收到快照文件后丢弃所有的旧数据,载入收到的…

卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用

一、背景 随着科技的不断进步和社会治安的日益严峻&#xff0c;视频监控系统已经成为维护公共安全和提升管理效率的重要工具。传统的视频监控主要依赖于有线传输&#xff0c;但受到地域限制、布线成本高等因素的影响&#xff0c;其应用范围和效果受到一定限制。而卫星通讯传输…

CentOS 7 下gdb任意版本的升级

文章目录 前言查看gdb版本升级步骤 小结 前言 在做项目的过程中&#xff0c;遇到了难缠的bug&#xff0c;使用gdb调试的时候&#xff0c;bt调用堆栈看的一震头疼&#xff0c;于是就想起把gdb升级一下 当前环境&#xff1a;Centos7&#xff0c;gdb&#xff1a;7.6 稍微好看了那…

提醒:网站使用微软雅黑字体的三种方式,两种侵权,一种不侵权。

大家都知道微软雅黑是windows系统的默认字体&#xff0c;但是不知道微软雅黑的版权归属方正字体&#xff0c;而且方正字体仅仅授权了微软在windows系统中使用该字体&#xff0c;脱离了windows使用&#xff0c;那是极易中招的&#xff0c;网页字体使用是前端开发的工作之一&…

Makefile-快速掌握

引用 本文完全参照大佬的文档写的&#xff0c;写这篇文章只是为了梳理一下知识 https://github.com/marmotedu/geekbang-go/blob/master/makefile/Makefile%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md 介绍 Makefile是一个工程文件的编译规则&#xff0c;描述了整个工程的编译…

Netflix 机器学习科学家的提示词优化经验分享

编者按&#xff1a; 如何充分发挥大模型的潜能&#xff0c;用好大模型&#xff0c;关键在于如何优化向它们发送的提示词&#xff08;prompt&#xff09;&#xff0c;是为提示词工程&#xff08;prompt engineering&#xff09;。 本文Netflix 机器学习科学家Cameron R. Wolfe的…

SwiGLU激活函数与GLU门控线性单元原理解析

前言 SwiGLU激活函数在PaLM&#xff0c;LLaMA等大模型中有广泛应用&#xff0c;在大部分测评中相较于Transformer FFN中所使用的ReLU函数都有提升。本篇先介绍LLaMA中SwiGLU的实现形式&#xff0c;再追溯到GLU门控线性单元&#xff0c;以及介绍GLU的变种&#xff0c;Swish激活…

分布式技术导论 — 探索分析从起源到现今的巅峰之旅(逻辑架构)

探索分析从起源到现今的巅峰之旅 背景介绍技术系列 逻辑架构连接处理层数据缓存层SQL处理层存储引擎逻辑层次的分工 模块执行连接处理层初始化模块核心API模块网络交互模块Client&Server 交互协议模块用户模块案例 访问控制模块案例 连接管理、连接线程和线程管理连接管理模…

学习资料分析

学习资料分析 速算运算 √截位直除分数比较等比修正其他速算方法基期与现期基本概念求基期求现期增长率与增长量增长相关统计术语求一般增长率比较一般增长率增长量比重比重相关公式求比重平均数倍数间隔增长乘积增长率年增长率混合增长率资料分析:主要测查报考者对文字、数字…

UML与设计模式

1、关联关系 关联关系用于描述不同类的对象之间的结构关系&#xff0c;它在一段时间内将多个类的实例连接在一起。关联关系是一种静态关系&#xff0c;通常与运行状态无关&#xff0c;而是由“常识”、“规则”、“法律”等因素决定的&#xff0c;因此关联关系是一种强关联的关…

Web前端开发模板:创新实践与深度解析

Web前端开发模板&#xff1a;创新实践与深度解析 在数字化时代的浪潮中&#xff0c;Web前端开发作为构建用户界面的关键环节&#xff0c;其重要性日益凸显。一个优秀的Web前端模板不仅能够提升用户体验&#xff0c;还能有效推动项目的快速开发与部署。本文将从四个方面、五个方…

媒体查询的屏幕尺寸范围

在响应式网站设计中&#xff0c;媒体查询通常用于根据不同的屏幕尺寸应用不同的样式规则。以下是一些常见的屏幕尺寸范围&#xff0c;这些范围可以用于定义大屏幕、中屏幕、小屏幕和超小屏幕设备的样式。这些范围广泛参考了 Bootstrap 框架的断点&#xff0c;因为它是一个广泛使…

层出不穷的大模型产品:使用体验、倾向选择及未来展望

✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点赞、关注、收藏、评论&#xff0c;是对我最大…

哪些因素驱动新零售发展?新零售与传统零售、电子商务区别在哪?

零售业正经历着一场前所未有的变革&#xff0c;这场变革由多种因素驱动&#xff0c;涉及技术、消费习惯以及商业模式的全面升级。我们称之为”新零售”&#xff0c;它不仅仅是一个概念&#xff0c;更是零售业未来发展的方向。新零售的兴起&#xff0c;标志着零售行业正在迈向一…

Spring boot 使用AbstractRoutingDataSource实现数据源动态切换

目录 一、AbstractRoutingDataSource 二、具体实现 1、pom.xml 2、新建UserMapper 3、在spring boot 启动类上添加扫描mapper注解 4、在配置文件 application.properties 中添加多个(我这里是两个)数据源的配置信息 5、集成动态数据源模块 5.1、新建注解 CurDataSource…

186.二叉树:二叉搜索树中的插入操作(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

pytest + yaml 框架 -61.jenkins+allure+钉钉通知添加测试结果

前言 上一篇pytest + yaml 框架 -60.git+jenkins+allure+钉钉通知反馈 已经实现测试结果用钉钉通知。 本篇继续在钉钉通知里添加测试的汇总结果,此功能在pytest-yaml-yoyo v1.5.2版本上实现。 Environment Injector 插件 在运行完用例后会生成一个summary.json 文件,汇总…

护眼台灯哪个品牌更好?五款市面主流的护眼台灯款式分享

近年来&#xff0c;护眼台灯的研发和创新不断推进&#xff0c;一些台灯配备了智能化功能&#xff0c;如定时开关机、自动调节光线等&#xff0c;使孩子们能够更好地控制用眼时间和光线环境。护眼台灯哪个品牌更好&#xff1f;一些高端的护眼台灯还采用了纳米光滤镜技术&#xf…

誉天5月红帽战报:恭喜14名学员通过RHCE认证,通过率87.5%!

红帽认证是全球公认的Linux权威认证之一&#xff0c;对于Linux从业者来说具有很高的价值和认可度。旨在评估考生在Linux系统管理和应用方面的专业知识和技能。红帽考试是Linux从业者提升自身技能水平和职业竞争力的重要途径之一。 5月份&#xff0c;誉天14名学员通过了RHCE认证…

Python基础教程(十九):网络编程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…