刷题篇 - 03

题目一:

203. 移除链表元素 - 力扣(LeetCode)

public ListNode removeElements(ListNode head, int val) {//1. 如果链表为null,直接返回headif (head == null) {return head;}//2. 定义快慢指针ListNode pre = head;ListNode del = pre.next;while (pre.next != null) {if (del.val == val) {pre.next = del.next;//del = del.next;} else {pre = pre.next;//del = del.next;}del = del.next;}//3. 排查头节点if (head.val == val) {head = head.next;}//4. 返回return head;}

题目二:

206. 反转链表 - 力扣(LeetCode)

public ListNode reverseList(ListNode head) {//1. 如果链表为null,直接返回headif (head == null) {return head;}//2. 正常ListNode cur = head.next;//待交换节点//3. 将头节点的next置为nullhead.next = null;//4. 进行交换while (cur != null) {//5. 记录待交换节点的下一个节点ListNode curN = cur.next;cur.next = head;head = cur;cur = curN;}//5. 返回return head;}

题目三:

876. 链表的中间结点 - 力扣(LeetCode)

public ListNode middleNode(ListNode head) {//1. 题目提示:链表一定不为null//2. 定义快慢指针ListNode fast = head;//每次走两步ListNode slow = head;//每次走一步while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}//3. 返回return slow;}

题目四:正

面试题 02.02. 返回倒数第 k 个节点 - 力扣(LeetCode)

public int kthToLast(ListNode head, int k) {//新增条件:k不一定合法//1. 如果链表为null,k<=0if (head == null || k <= 0) {return -1;}//2. 定义快慢指针ListNode fast = head;ListNode slow = head;//3. 快指针先走k-1步,同时判断k的合法性for (int i = 0; i < k - 1; i++) {//【解析】:当fast.next == null时,fast不能再继续走了//if语句写在前面的原因,如果fast.next == null,往后走了之后//fast == null,再进入if语句会造成空指针异常if (fast.next == null) {return -1;}fast = fast.next;}//4. 快慢指针同时走while (fast.next != null) {fast = fast.next;slow = slow.next;}//5. 返回return slow.val;}

题目五:正

21. 合并两个有序链表 - 力扣(LeetCode)

public ListNode mergeTwoLists(ListNode head1, ListNode head2) {//1. 定义傀儡节点ListNode head = new ListNode(-1);ListNode cur = head;//2. 开始拼接while (head1 != null && head2 != null) {if (head1.val < head2.val) {cur.next = head1;head1 = head1.next;} else {cur.next = head2;head2 = head2.next;}cur = cur.next;}//3. 根据出循环的原因分别作出反应(即使两个链表都为空也没关系)if (head1 == null) {cur.next = head2;}if (head2 == null) {cur.next = head1;}//3. 返回return head.next;}

题目六:

链表分割_牛客题霸_牛客网 (nowcoder.com)

public ListNode partition(ListNode pHead, int x) {// write code here//1. 如果链表为nullif (pHead == null) {return pHead;}//2. 定义两组傀儡节点ListNode head1 = new ListNode(-1);ListNode cur1 = head1;ListNode head2 = new ListNode(-1);ListNode cur2 = head2;//3. 遍历所给链表while (pHead != null) {if (pHead.val < x) {cur1.next = pHead;cur1 = cur1.next;} else {cur2.next = pHead;cur2 = cur2.next;}pHead = pHead.next;}//4. 合并两个傀儡链表//① 如果前一个链表为nullif (head1.next == null) {return head2.next;}//② 如果前一个链表不为null(包含后一个链表为null和不为null的情况)cur1.next = head2.next;cur2.next = null;//最后一个节点的值给了前一个链表,则此时后一个链表的最后一个节点的next一定不是nullreturn head1.next;}

题目七:正

链表的回文结构_牛客题霸_牛客网 (nowcoder.com)

public boolean chkPalindrome(ListNode A) {// write code here//1. 如果链表为nullif (A == null) {return true;}//2. 找到中间节点ListNode fast = A;//每次走两步ListNode slow = A;//每次走一步while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}//3. 翻转中间节点之后的所有节点ListNode cur = slow.next;//待翻转节点while (cur != null) {ListNode curN = cur.next;cur.next = slow;slow = cur;cur = curN;}//4. 判断是否为回文fast = A;while (fast != slow) {//链表节点个数为奇数,fast==slow为结束标志if (fast.val != slow.val) {//不对称return false;} else {//对称if (fast.next == slow) {//链表节点个数为偶数,fast.next==slow为结束标志return true;//如果是对称的条件,并且满足了偶数节点个数的结束条件,则可直接返回}fast = fast.next;slow = slow.next;}}//5. 返回return true;}

题目八:正

160. 相交链表 - 力扣(LeetCode)

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {//题目已经提示两个链表的节点个数一定不为0//1. 计算两个链表的长度,并假设链表A更长int countA = 0;int countB = 0;ListNode curA = headA;ListNode curB = headB;while (curA != null) {countA++;curA = curA.next;}while (curB != null) {countB++;curB = curB.next;}//2. 判断究竟哪个链表更长int sub = countA - countB;curA = headA;curB = headB;if (sub < 0) {//此时B链表更长curA = headB;curB = headA;sub = countB - countA;}//3. 让更长的链表先走sub步for (int i = 0; i < sub; i++) {curA = curA.next;}//4. 找相遇节点while (curA != null) {//只用判断curA和curB中是否有一个为null即可if (curA == curB) {return curA;}curA = curA.next;curB = curB.next;}//5. 代码走到这里一定是因为两个链表不相交return null;}

题目九:正

141. 环形链表 - 力扣(LeetCode)

public boolean hasCycle(ListNode head) {//定义快慢指针(下列代码链表为null也能正确处理)ListNode fast = head;//一次走两步ListNode slow = head;//一次走一步while (fast != null && fast.next != null) {//有顺序要求的原因,如果链表为空,后面的会空指针异常fast = fast.next.next;slow = slow.next;if (fast == slow) {return true;}}return false;}

题目十:正

142. 环形链表 II - 力扣(LeetCode)

public ListNode detectCycle(ListNode head) {//1. 找到快慢指针相遇的节点//定义快慢指针(下列代码链表为null也能正确处理)ListNode fast = head;//一次走两步ListNode slow = head;//一次走一步while (fast != null && fast.next != null) {//有顺序要求的原因,如果链表为空,后面的会空指针异常fast = fast.next.next;slow = slow.next;if (fast == slow) {break;}}//2. 判断是如何出while循环的//关于不能以fast != slow作为循环条件的原因//答:当链表为null,或链表只有一个节点时,也满足该条件,//此时则不能判定是fast==slow的情况if (fast == null || fast.next == null) {return null;}//3. 寻找入环点fast = head;while (fast != slow) {fast = fast.next;slow = slow.next;}//4. 返回return fast;}

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

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

相关文章

Tomcat:Web 领域的闪耀明珠,魅力何在?

一、Web技术 HTTP 协议&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是互联网上应用最为广泛的一种网络协议。它的主要作用是在客户端和服务器之间传输超文本数据&#xff0c;如网页、图片、视频等。 HTTP 协议的特点 无状态性 HTTP 协议是…

STM32H7双路CAN踩坑记录

STM32H7双路CAN踩坑记录 目录 STM32H7双路CAN踩坑记录1 问题描述2 原因分析3 解决办法4 CAN配置参考代码 1 问题描述 STM32的CAN1和CAN2无法同时使用。 注&#xff1a;MCU使用的是STM32H743&#xff0c;其他型号不确定是否一样&#xff0c;本文只以STM32H743举例说明。 2 原因…

了解同步带选择同步带

同步带和轮选型 同步带传动属于皮带传动&#xff0c;但是改进了传统皮带传动无法保持严格的传动比的打滑问题&#xff0c;传统皮带传动依靠皮带和皮带轮张紧时产生的摩擦力传输动力&#xff0c;但是从动轮遇到障碍或超载荷时&#xff0c;皮带会在皮带轮产生滑动。 解决打滑问题…

项目1 物流仓库管理系统

一、项目概述 本项目旨在开发一个功能全面的物流仓库管理系统&#xff0c;以数字化手段优化仓库作业流程&#xff0c;提高管理效率。系统集成了前端用户交互界面与后端数据处理逻辑&#xff0c;涵盖了从用户注册登录、订单管理、货单跟踪到用户信息维护等多个核心业务模块。通…

前端3d动画-----平移 transform: translate3d()

必须加这个属性&#xff1a;transform-style: preserve-3d; perspective: 900px; 设置了景深才能感到近大远小的感觉 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

分享一个基于python爬虫的“今日头条”新闻数据分析可视化系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

AI赋能软件测试:从自动化到智能化,让测试工作事半功倍

引言 在当今这个日新月异的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;正以不可阻挡之势渗透并重塑着各行各业&#xff0c;其中&#xff0c;软件开发与测试领域更是迎来了前所未有的变革。随着软件系统的复杂性日益增加&#xff0c;用户对软件质量、性能及安全性的…

Nginx笔记(高级)

扩容 通过扩容提升整体吞吐量 单机垂直扩容&#xff1a;硬件资源增加 云服务资源增加 整机&#xff1a;IBM、浪潮、DELL、HP等CPU/主板&#xff1a;更新到主流网卡&#xff1a;10G/40G网卡磁盘&#xff1a;SAS(SCSI) HDD&#xff08;机械&#xff09;、HHD&#xff08;混合&…

android13布局查看工具 无源码查看布局 在线查找ui布局id

总纲 android13 rom 开发总纲说明 目录 1.前言 2.工具介绍 2.1工具1 2.2工具2 2.3工具3 2.4工具4 3.彩蛋 1.前言 Android 13提供了一些工具来帮助开发人员查看和优化应用的布局。方便的让我们找到具体应用的布局文件等信息。 2.工具介绍 2.1工具1 老版本DDMS&#x…

封装通用第三方平台用户表(微信开放平台)

文章目录 一. 注册微信开放平台1.1 开发者资质认证1.2 应用申请1.3 配置应用 二.通用数据库表设计三.入库实体类四. 对接第三方平台4.1 微信开放平台VO对象4.2 通用方法 我们的系统可能要对接很多第三方系统&#xff0c;为了便利用户授权使用和对多平台账户的管理。有必要设计通…

ant design pro 技巧之实现列表页多标签

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的ant design pro 中用户的表单如何控制多个角色ant des…

影响五金精密零件加工价格的因素

在制造业中&#xff0c;五金精密零件的加工价格受到多种因素的影响。了解这些因素&#xff0c;对于企业合理控制成本、选择合适的加工供应商至关重要。 首先&#xff0c;零件的设计复杂度是一个重要因素。复杂的设计通常需要更先进的加工技术和更多的加工工序。例如&#xff0c…

Unity编辑器扩展:创建一个欢迎窗口,在启动Editor的时候显示自定义窗口。

Unity编辑器扩展&#xff1a;创建一个欢迎窗口&#xff0c;在启动Editor的时候显示自定义窗口。 在Unity开发过程中&#xff0c;经常会遇到需要向其他人展示重要信息的情况&#xff0c;比如项目文档、脚本说明、插件介绍等。这个窗口不仅能够展示必要的文档信息&#xff0c;还…

用手机写一本电子书

第1步、进入Andi.cn网站 第2步、点击登录&#xff0c;注册用户 第3步、点击去创作&#xff0c;进入创作页面 第4步、点击右下角的小笔&#xff0c;写一篇文章 第5步、下翻&#xff0c;点击提交按钮 第6步、再写一篇文章 第7步、点击栏目设计 第8步、进入栏目设计&#xff0c;点…

FFmpeg的入门实践系列三(基础知识)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力 文章目录 前期博客一、音视频常用术语二、FFmpeg库的结构介绍三、FFmpeg的常用函数初始化封装格式编解码器相关 四、FFmpeg常用的数…

安装搭建MongoDB及配置副本集

目录 一、什么是MongoDB的副本集 简介 &#xff08;1&#xff09;冗余和数据可用性 &#xff08;2&#xff09;MongoDB中的复制 &#xff08;3&#xff09;主从复制和副本集区别 二、副本集的架构 三、副本集的成员 四、部署副本集 1、节点划分 2、安装MongoDB 2.1、…

Jetpack 各种框架简介

Jetpack是Google推出的一套为Android开发提供极大便利的组件、工具和指导集&#xff0c;旨在帮助开发者快速构建高质量的应用&#xff0c;并遵循最佳实践。 Jetpack不仅是一个提高开发效率的工具集&#xff0c;还是Android开发的未来方向。它通过整合各种组件和工具&#xff0…

VAuditDemo审计之二次注入漏洞

目录 VAuditDemo二次注入漏洞 搜索危险函数&#xff0c;用户可控点 regCheck.php messageSub.php message.php 漏洞调用链 漏洞错误利用过程 注册用户 xxxx, 发表payload留言 漏洞正确利用过程 注册用户 wwww\ 退出用户 wwww\\ 使用 wwww\ 登录 发表留言 替换dat…

【全网最真实测评】随身WiFi值得入手吗?自费入手华为、中兴、格行、上赞4款随身WiFi,内含国产4款热门随身WiFi推荐!(最实用、最高性价比!)

随身WiFi的风越吹越大&#xff0c;市场乱象也更变本加厉。作为一名资深随身WiFi使用者&#xff0c;接触过太多的随身WiFi产品&#xff0c;越是了解这个行业黑幕&#xff0c;就越对无良商家夸大宣传、虚标限速&#xff0c;甚至售卖二手产品的行为深恶痛绝&#xff01; 本篇测评涉…