当前位置: 首页 > news >正文

链表OJ--下

文章目录

  • 前言
  • 一、链表分割
  • 二、环形链表I
  • 三、环形链表II
  • 四、链表的回文结构
  • 五、随机链表的复制


前言

一、链表分割

牛客网CM11:链表分割- - -点击此处传送
在这里插入图片描述
题解:
思路图:
在这里插入图片描述
代码:
在这里插入图片描述

二、环形链表I

力扣141:环形链表- - -点击此处传送
在这里插入图片描述
思路图:
在这里插入图片描述
扩展问题:
在这里插入图片描述

代码:

bool hasCycle(struct ListNode *head) {struct ListNode*fast=head,*slow=head;while(fast && fast->next){//slow走一步slow=slow->next;//fast走两步fast=fast->next->next;//若相等(相遇)则有环,返回true并退出程序if(fast==slow){return true;}}//否则无环return false;
}

三、环形链表II

力扣142:环形链表II- - -点击此处传送
在这里插入图片描述
题解:
思路图:
在这里插入图片描述
代码:

struct ListNode *detectCycle(struct ListNode *head) {struct ListNode*fast=head;struct ListNode*slow=head;while(fast && fast->next){slow=slow->next;fast=fast->next->next;if(fast==slow){struct ListNode*meet=slow;while(head != meet){head=head->next;meet=meet->next;}return meet;}}return NULL;
}

四、链表的回文结构

牛客网OR36:链表的回文结构- - -点击此处传送
在这里插入图片描述
思路图:
在这里插入图片描述

代码:

struct ListNode*reverseList(struct ListNode*head){struct ListNode*cur=head;struct ListNode*newhead=NULL;while(cur){struct ListNode*next=cur->next;cur->next=newhead;newhead=cur;cur=next;}return newhead;}struct ListNode*middleNode(struct ListNode*head){struct ListNode*slow=head;struct ListNode*fast=head;while(fast && fast->next){slow=slow->next;fast=fast->next->next;}return slow;}bool chkPalindrome(ListNode* head) {struct ListNode*mid=middleNode(head);struct ListNode*rhead=reverseList(mid);while(head && rhead){if(head->val != rhead->val)return false;head=head->next;rhead=rhead->next;}return true;}

五、随机链表的复制

力扣138:随机链表的复制- - -点击此处传送
在这里插入图片描述
思路图:
在这里插入图片描述
代码:

struct Node* copyRandomList(struct Node* head) 
{struct Node*cur=head;while(cur){struct Node*copy=(struct Node*)malloc(sizeof(struct Node));copy->val=cur->val;copy->next=cur->next;cur->next=copy;cur=copy->next;} cur=head;while(cur){struct Node*copy=cur->next;if(cur->random==NULL){copy->random=NULL;}else{copy->random=cur->random->next;}cur=copy->next;}cur=head;struct Node*newhead=NULL;struct Node*tail=NULL;while(cur){struct Node*copy=cur->next;struct Node*next=copy->next;if(tail==NULL){newhead=tail=copy;}else{tail->next=copy;tail=tail->next;}cur->next=next;cur=next;}return newhead;
}

相关文章:

链表OJ--下

文章目录 前言一、链表分割二、环形链表I三、环形链表II四、链表的回文结构五、随机链表的复制 前言 一、链表分割 牛客网CM11:链表分割- - -点击此处传送 题解: 思路图: 代码: 二、环形链表I 力扣141:环形链表…...

FreeRTOS源码阅读笔记4--semphr.h

信号量是特殊的队列--无法存储消息的队列,相关的接口函数声明在semphr.h中,通过宏定义替换队列函数实现。 4.1创建二值信号量xSemaphoreCreateBinary() 4.1.1函数原型 queueQUEUE_TYPE_BINARY_SEMAPHORE:一个宏,表示创建队列的…...

面试:MyBatis问题

文章目录 什么是MyBatis?MyBatis的核心组件有哪些?能说说MyBatis的工作原理吗?MyBatis的工作流程是怎样的?Mybaits 的优点 & 缺点MyBatis 与 JPA 有哪些不同?MyBatis一二级缓存的区别?MyBatis如何处理延迟加载&am…...

vue中页面(路由)跳转及传值的几种方式 router-link + query + params

vue中页面(路由)跳转及传值的几种方式 知道query 和 params 是什么 参考文案:https://www.php.cn/js-tutorial-382859.html 跳转的几种方式与传值 1、router-link 1.1 根据路由路径(无参数与有参数) <router-link to = "/page">跳转到page页面</…...

媒体格式转换软件Permute 3 mac中文版软件特点

Permute mac是一款媒体格式转换软件&#xff0c;可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式&#xff0c;并提供了一些常用工具以便于用户进行编辑和处理。 Permute mac软件特点 - 支持大量格式&#xff1a;支持几乎所有常见的音频、视频和图像格式&#xff…...

Docker实用篇

Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…...

开启数据库审计(db,extended级别或os级别),并将审计文件存放到/home/oracle/audit下

文章目录 开启数据库审计&#xff08;db,extended级别或os级别&#xff09;&#xff0c;并将审计文件存放到/home/oracle/audit下一. 简介二. 配置2.1. 审计是否安装2.2. 审计表空间迁移2.3. 审计参数2.4. 审计级别2.5. 其他审计选项2.6. 审计相关视图 三. 使用3.1. 开启/关闭审…...

单片机语音芯片开发要解决的问题

在单片机语音芯片开发过程中&#xff0c;可能会遇到多种问题&#xff0c;这些问题可能来自于技术层面&#xff0c;也可能来自于芯片本身的设计和应用层面。下面让我们具体从芯片的功耗、语音识别的准度、芯片的尺寸和芯片的可靠性四个方面开展讨论。 1.芯片的功耗问题 首先&a…...

Cesium 展示——地球以及渲染数据导出(下载)为图片或 pdf

文章目录 需求分析新加需求分析第一种方式第二种方式需求 将 Cesium 球体以及渲染数据导出为 jpg/png/pdf 分析 获取场景 scene 信息,转为image 的 octet-stream 流 进行下载为图片 /*** @todo canvas 导出图片* @param {string} dataurl - 地址* @return {Blob}*/ functio…...

大数据平台红蓝对抗 - 磨利刃,淬精兵! | 京东云技术团队

一、背景 目前大促备战常见备战工作&#xff1a;专项压测&#xff08;全链路压测、内部压测&#xff09;、灾备演练、降级演练、限流、巡检&#xff08;监控、应用健康度&#xff09;、混沌演练&#xff08;红蓝对抗&#xff09;&#xff0c;如下图所示。随着平台业务越来越复…...

java游戏制作-王者荣耀游戏

一.准备工作 首先创建一个新的Java项目命名为“王者荣耀”&#xff0c;并在src下创建两个包分别命名为“com.sxt"、”com.stx.beast",在相应的包中创建所需的类。 创建一个名为“img”的文件夹来储存所需的图片素材。 二.代码呈现 package com.sxt;import javax.sw…...

Linux实验三:shell程序设计: shell基础

实验目的: 进一步巩固shell程序设计语言基本语法&#xff0c;加深对所学知识理解。 实验要求 1. 四种变量的使用 2. 配置环境变量 3. 元字符和正则表达式 4. 引号 1. 本地变量 $ var1"hello Linux" //定义本地变量var1 $ read var2 //定义本地变量vae…...

webpack环境变量的设置

现在虽然vite比较流行&#xff0c;但对于用node写后端来说&#xff0c;webpack倒是成了一个很好的打包工具&#xff0c;可以很好的保护后端的代码。所以这块的学习还是不能停下来&#xff0c;接下来我们来针对不同的环境做不同的设置写好笔记。 引用场景主要是针对服务器的各种…...

基于51单片机音乐盒设计( proteus仿真+程序+原理图+PCB+报告+讲解视频)

音乐盒 主要功能&#xff1a;仿真原理图PCB图程序设计&#xff1a;设计报告实物图资料清单&#xff08;提供资料清单所有文件&#xff09;&#xff1a;资料下载链接&#xff1a; 基于51单片机音乐盒仿真设计( proteus仿真程序原理图PCB报告讲解视频&#xff09; 仿真图proteus …...

技术分享| anyRTC之RTN网络

RTN(Real-time Network)中文名&#xff1a;实时音视频传输网络。 RTN是最近几年由各大RTC的云厂商提出的一个全新架构的音视频实时传输网络概念。类似于直播的CDN网络&#xff0c;RTN是对音视频的实时性又强烈要求的场景而设计的&#xff0c;原理上全球端到端的时延通过RTN网络…...

基于GPRS的汽车碰撞自动报警系统(论文+源码)

1. 系统设计 本次基于GPRS的汽车碰撞自动报警系统的设计中&#xff0c;其主要的目标功能如下&#xff1a;1、实时检测当前的GPS精度和纬度坐标&#xff1b;2.当发生碰撞后系统自动将当前的信息通过GPRS数据发送到远端数据进行报警&#xff1b;3、系统在碰撞后一方面进行本地报警…...

qgis添加wms服务

例如添加geoserver的wms服务 左右浏览器-WMS/WMTS-右键-新建连接 URL添加geoserver的wms地址 http://{ip}:{port}/geoserver/{workspace}/wms 展开wms目录&#xff0c;双击相应图层即可打开...

【DQN】基于pytorch的强化学习算法Demo

目录 简介代码 简介 DQN&#xff08;Deep Q-Network&#xff09;是一种基于深度神经网络的强化学习算法&#xff0c;于2013年由DeepMind提出。它的目标是解决具有离散动作空间的强化学习问题&#xff0c;并在多个任务中取得了令人瞩目的表现。 DQN的核心思想是使用深度神经网…...

【C++】泛型编程 ⑭ ( 类模板示例 - 数组类模板 | 容器思想 | 自定义类可拷贝 - 深拷贝与浅拷贝 | 自定义类可打印 - 左移运算符重载 )

文章目录 一、容器思想1、自定义类可拷贝 - 深拷贝与浅拷贝2、自定义类可拷贝 - 代码示例3、自定义类可打印 - 左移运算符重载 二、代码示例1、Array.h 头文件2、Array.cpp 代码文件3、Test.cpp 主函数代码文件4、执行结果 一、容器思想 1、自定义类可拷贝 - 深拷贝与浅拷贝 上…...

砖家测评:腾讯云标准型S5服务器和s6性能差异和租用价格

腾讯云服务器CVM标准型S5和S6有什么区别&#xff1f;都是标准型云服务器&#xff0c;标准型S5是次新一代云服务器规格&#xff0c;标准型S6是最新一代的云服务器&#xff0c;S6实例的CPU处理器主频性能要高于S5实例&#xff0c;同CPU内存配置下的标准型S6实例要比S5实例性能更好…...

海投60份简历,0面试,我是不是真的很差?

凌晨 1 点&#xff0c;又把招聘软件刷了一遍。 看着“已读不回”的 4 个对话框&#xff0c;和“已送达”的另外 30 多个未读消息&#xff0c;突然觉得好无力。 双非本科&#xff0c;没有大厂实习&#xff0c;简历那点校园经历从大一写到现在&#xff0c;改来改去还是那几行字。…...

AI写论文秘籍!4款AI论文生成工具,帮你轻松完成学术大作

2025 - 2026年AI论文写作工具&#xff1a;学术写作的得力助手 在2025年的学术写作智能化潮流中&#xff0c;越来越多的人开始尝试使用AI写论文的工具。不过&#xff0c;许多现有的AI论文写作工具在撰写硕士和博士论文等长篇作品时&#xff0c;常常面临着缺乏理论深度和逻辑严谨…...

副业焦虑的心理学分析与应对方法论

摘要副业焦虑已成为当代职场人群的普遍心理状态。本文从心理学视角分析副业焦虑的三大来源&#xff08;社会比较焦虑、行动瘫痪焦虑、结果不确定性焦虑&#xff09;&#xff0c;提出"可控小确幸"理论框架&#xff0c;并设计一套基于自我决定论&#xff08;SDT&#x…...

LangFlow:可视化低代码平台,快速构建LLM应用工作流

1. 项目概述&#xff1a;为什么我们需要LangFlow这样的AI应用构建工具&#xff1f;如果你最近在尝试将大型语言模型&#xff08;LLM&#xff09;集成到自己的业务或项目中&#xff0c;大概率会遇到一个共同的困境&#xff1a;想法很美好&#xff0c;落地很骨感。你构思了一个智…...

WPS-Zotero集成方案:跨平台科研写作工作流优化

WPS-Zotero集成方案&#xff1a;跨平台科研写作工作流优化 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero WPS-Zotero插件为科研工作者提供了跨平台文献管理集成方案&#x…...

SuperDesign:IDE内AI设计助手,自然语言生成UI与代码

1. 项目概述&#xff1a;当AI设计助手住进你的代码编辑器如果你和我一样&#xff0c;是个对UI设计有点“手残”但又有完美主义倾向的开发者&#xff0c;那今天聊的这个工具&#xff0c;你可能会觉得相见恨晚。它就是SuperDesign&#xff0c;一个直接运行在你IDE&#xff08;比如…...

D2RML终极指南:暗黑2重制版多账户启动器完整使用教程

D2RML终极指南&#xff1a;暗黑2重制版多账户启动器完整使用教程 【免费下载链接】D2RML Diablo 2 Resurrected Multilauncher 项目地址: https://gitcode.com/gh_mirrors/d2/D2RML D2RML&#xff08;Diablo 2 Resurrected Multilauncher&#xff09;是一款专门为《暗黑…...

如何高效预览3D模型:5个专业技巧与实战指南

如何高效预览3D模型&#xff1a;5个专业技巧与实战指南 【免费下载链接】f3d Fast and minimalist 3D viewer. 项目地址: https://gitcode.com/GitHub_Trending/f3/f3d 在当今数字化设计时代&#xff0c;3D模型预览工具已成为设计师、工程师和开发者的必备利器。面对复杂…...

golang如何实现多活架构方案_golang多活架构方案实现教程

多活核心是流量调度而非服务启动&#xff0c;需在注册、发现、路由、重试等全链路显式支持region标签与fallback。Golang因轻量稳定适配手写逻辑&#xff0c;读多活写单中心是务实起点&#xff0c;DNS/K8s/grpc默认机制均需绕过&#xff0c;必须通过context传region、自定义res…...

Edgi-Talk开发套件:边缘AI全栈解决方案解析

1. Edgi-Talk开发套件核心解析这款由英飞凌和RT-Thread联合设计的开发板&#xff0c;本质上是一个面向边缘AI场景的全栈解决方案。PSOC Edge E84 SoC的双核架构设计非常有意思——400MHz的Cortex-M55主攻AI运算&#xff0c;搭配200MHz的Cortex-M33处理常规任务&#xff0c;这种…...