asp网站木马扫描/百度知道首页登录

asp网站木马扫描,百度知道首页登录,上海网站制作公司报价,周口学做网站目录 链表分区(Partition) 功能概述 代码实现 要点与难点 注意事项 链表回文判断(PalindromeList) 功能概述 代码实现 要点与难点 注意事项 总结 在链表相关的算法问题中,理解链表的基本结构和操作至关重要…

目录

链表分区(Partition)

功能概述

代码实现

要点与难点

注意事项

链表回文判断(PalindromeList)

功能概述

代码实现

要点与难点

注意事项

总结


在链表相关的算法问题中,理解链表的基本结构和操作至关重要。今天我们深入探讨两个经典的链表问题:链表分区和链表回文判断,通过详细分析代码实现,理解其中的要点、难点和注意事项。

作者主页:共享家9527-CSDN博客

链表分区(Partition)

功能概述

链表分区的目标是将给定链表按照某个值 x 进行划分,使得所有小于 x 的节点排在大于或等于 x 的节点之前。

代码实现


 

cppclass Partition {public:ListNode* partition(ListNode* pHead, int x) {// 定义用于存储大于等于x节点链表的头指针和尾指针,以及小于x节点链表的头指针和尾指针,还有遍历原链表的指针struct ListNode* greatHead, *greattail, *lessHead, *lesstail, *cur; // 为大于等于x节点链表的头指针和尾指针分配内存,并初始化为同一节点greatHead = greattail = (struct ListNode*)malloc(sizeof(struct ListNode)); // 为小于x节点链表的头指针和尾指针分配内存,并初始化为同一节点lessHead = lesstail = (struct ListNode*)malloc(sizeof(struct ListNode)); // 将遍历指针指向原链表头节点cur = pHead;  // 遍历原链表进行尾插while(cur){if(cur->val < x){// 将当前小于x的节点接到less链表的尾部lesstail->next = cur;  // 更新less链表的尾指针为当前节点lesstail = cur;   // 原链表中cur指针继续指向下一个节点cur = cur->next;  }else{// 将当前大于等于x的节点接到great链表的尾部greattail->next = cur; // 更新great链表的尾指针为当前节点greattail = cur;  // 原链表中cur指针继续指向下一个节点cur = cur->next;  }}// 将less链表和great链表连接起来lesstail->next = greatHead->next;  // 将great链表的最后一个节点的next指针置为NULL,避免原链表的链接干扰greattail->next = NULL;           // 返回less链表的第一个有效节点(去掉虚拟头节点)return lessHead->next; }};

要点与难点

1. 虚拟头节点的使用:为简化链表操作,创建了两个虚拟头节点 lessHead 和 greatHead ,分别用于存储小于 x 和大于等于 x 的节点。这避免了对链表头节点的特殊处理,让代码更简洁统一。

2. 尾插法:通过 lesstail 和 greattail 指针,采用尾插法将原链表中的节点分别插入到两个新链表中,保持节点的相对顺序。

3. 链表连接:遍历结束后,将 lesstail 的 next 指针指向 greatHead->next ,实现两个链表的连接。

4. 最后节点处理:必须将 greattail 的 next 指针设为 NULL ,否则可能会形成环或导致错误的链表结构。

注意事项

- 内存分配:使用 malloc 分配内存时,记得在不再使用时释放内存,避免内存泄漏。

- 边界条件:考虑链表为空或只有一个节点的情况,确保代码的鲁棒性。

链表回文判断(PalindromeList)

功能概述

判断给定的链表是否为回文链表,即正向和反向读取链表节点的值是相同的。

代码实现


 

cppclass PalindromeList {public:bool chkPalindrome(ListNode* A) {// 定义慢指针,初始指向链表头节点struct ListNode* slow = A; // 定义快指针,初始指向链表头节点struct ListNode* fast = A; // 利用快慢指针找链表中间节点,快指针每次走两步,慢指针每次走一步while (fast->next) { slow = slow->next;fast = fast->next;// 如果快指针还有下一个节点,再走一步if (fast->next) { fast = fast->next;}}// 用于存储反转后半部分链表的新头指针struct ListNode* change = NULL; // 从中间节点开始处理后半部分链表struct ListNode* head = slow; // 反转链表的后半部分while (head) {// 保存当前节点的下一个节点struct ListNode* next = head->next; // 将当前节点指向前一个节点,实现反转head->next = change; // 更新新的头指针为当前节点change = head; // 继续处理下一个节点head = next; }// 比较链表的前半部分和反转后的后半部分while (slow) {// 如果对应节点值不相等,返回falseif (A->val != change->val) { return false;}// 前半部分链表指针后移A = A->next; // 反转后的后半部分链表指针后移change = change->next; }// 所有对应节点值都相等,返回truereturn true; }};

要点与难点

1. 快慢指针:利用快慢指针找到链表的中间节点。快指针每次移动两步,慢指针每次移动一步,当快指针到达链表末尾时,慢指针正好指向中间节点。这是找到链表中间位置的高效方法。

2. 链表反转:将链表的后半部分进行反转,通过改变指针方向实现。在反转过程中,需要小心处理指针的指向,确保链表结构不被破坏。

3. 比较判断:从链表的两端开始比较节点的值,若所有值都相同,则链表为回文链表。

注意事项

- 指针操作:在链表反转过程中,要注意保存当前节点的下一个节点,以免丢失链表结构。

- 边界条件:考虑链表长度为奇数和偶数的情况,确保代码在各种情况下都能正确判断。比如链表长度为奇数时,中间节点单独处理,不参与比较;链表长度为偶数时,中间两个节点分别属于前后两部分参与比较 。

总结

链表操作需要对指针有深入的理解和熟练的运用。无论是链表分区还是回文判断,关键在于合理利用指针来遍历、修改链表结构。在实现过程中,要注意边界条件的处理、内存管理以及代码的可读性和可维护性。通过不断练习和总结,我们可以更好地掌握链表相关的算法问题,提高编程能力。

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

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

相关文章

如何在 Node.js 中使用 .env 文件管理环境变量 ?

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法&#xff0c;而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要&#xff0c;以及如何在 Node.js 应用程序中有效的使用它。 为什么使用 .env 文…

【Git学习笔记】Git结构原理及其分支管理模型分析

【Git学习笔记】Git结构原理及其分支管理模型分析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Git学习笔记 文章目录 【Git学习笔记】Git结构原理及其分支管理模型分析前言一.认识工作区、暂存区、版本库1.1 版本回退1.2 撤销修改1.3 删…

[特殊字符]Windows 11 安装 Git 图文教程(含详细配置说明)

Windows 11 安装 Git 图文教程(含详细配置说明) 本教程适用于 Git 新手,手把手教你如何在 Windows 11 上完整安装 Git 并正确配置,配图清晰,步骤明确,建议收藏! ✅ 第一步:下载 Git 安装包 访问官网:https://git-scm.com自动识别系统后点击下载或者直接前往:Git for …

简单以太网配置

display arp //查看路由器mac地址 交换机配置命令&#xff1a; system-view // 从用户视图进入系统视图 dis mac-address //查看mac地址表 路由器配置命令: system-view // 从用户视图进入系统视图 int GigabitEthernet 0/0/0 //进入G口 0/0/0 进入之后配置网关: ip addre…

配置集群-日志聚集操作

1.修改配置文件 <!-- 开启日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置日志聚集服务器地址 --> <property> <name>yarn.log.server.url&…

华为ipd流程华为流程体系管理华为数字化转型流程数字化管理解决方案介绍81页精品PPT

华为流程体系最佳实践主要包括构建完善的流程框架&#xff0c;明确各层级流程要素与职责&#xff0c;梳理涵盖研发、采购、营销、服务、资产管理等多领域的流程&#xff0c;通过梳理业务场景和核心能力搭建差异化流程框架&#xff0c;采用自上而下与自下而上相结合的建模方法&a…

在 Spring Boot 中调用 AnythingLLM 的发消息接口

整体逻辑: 自建系统的web UI界面调用接口: 1.SpringBoot接口&#xff1a;/anything/chatMessageAnything 2.调用anythingLLM - 调用知识库deepseek r1 . Windows Installation ~ AnythingLLMhttps://docs.anythingllm.com/installation-desktop/windows http://localhost:3…

Python生成和安装requirements.txt

概述 看到别的大佬项目中&#xff0c;requirements.txt文件&#xff0c;里面包含了所需要的依赖及版本&#xff0c;方便项目管理和安装。 生成 requirements.txt 文件 pip3 freeze > requirements.txt生成的依赖包有点多&#xff0c;感觉可以根据自己需要整理。 安装req…

零知识证明:区块链隐私保护的变革力量

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

★ Linux ★ 进程(上)

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将和大家一起学习 linux 进程~ ​❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 Linux专栏&#xff1a;https://blog.csdn.net/2302_80328146/category_12815302…

Java面试第十一山!《SpringCloud框架》

大家好&#xff0c;我是陈一。如果文章对你有帮助&#xff0c;请留下一个宝贵的三连哦&#xff5e; 万分感谢&#xff01; 目录 一、Spring Cloud 是什么​ 二、Spring Cloud 核心组件​ 1. 服务发现 - Eureka​ 2. ​负载均衡 - Ribbon​ 3. 断路器 - Hystrix​ ​​4. …

Spring配置文件-Bean实例化三种方式

无参构造方法实例化 工厂静态方法实例化 工厂实例方法实例化

SpringBoot学习(三)SpringBoot整合JSP以及Themeleaf

目录 Spring Boot 整合 JSP1. 配置依赖2. 创建WEB目录结构&#xff0c;配置JSP解析路径3. 创建Controller类4. 修改application.yml5. 添加jstl标签库的依赖6. JSP页面7. 创建启动类 Spring Boot 整合 Thymeleaf1. 添加Thymeleaf依赖2. Controller3. 修改application.yml配置&a…

普通鼠标的500连击的工具来了!!!

今天介绍的这款软件叫&#xff1a;鼠标录制器&#xff0c;是一款大小只有54K的鼠标连点器&#xff0c;软件是绿色单文件版。抢票&#xff0c;拍牌&#xff0c;摇号都能用上。文末有分享链接 在使用先我们先设置快捷键&#xff0c;这样我们在录制和停止录制的时候会更方便。 软件…

【MySQL】基本查询(表的增删查改+聚合函数)

目录 一、Create1.1 单行数据 全列插入1.2 多行数据 指定列插入1.3 插入否则更新1.4 替换 二、Retrieve2.1 SELECT 列2.1.1 全列查询2.1.2 指定列查询2.1.3 查询字段为表达式2.1.4 为查询结果指定别名2.1.5 结果去重 2.2 WHERE 条件2.2.1 比较运算符2.2.2 逻辑运算符2.2.3 案…

火山引擎(豆包大模型)(抖音平台)之火山方舟的Prompt的使用测试

前言 在大模型的使用过程当中&#xff0c;Prompt的使用非常的关键。原来&#xff0c;我对Prompt的理解不深&#xff0c;觉得Prompt的产生并不是很有必要。但是&#xff0c;自从使用了火山方舟中的“Prompt优解”之后&#xff0c;感受加深了&#xff0c;觉得Prompt是我们和大模型…

SpringBoot入门-(2) Spring IOC机制【附实例代码】

SpringBoot入门-(2) Spring IOC机制 Spring Spring是一个当前主流的轻量级的框架&#xff0c;发展到形状已经不仅仅是一个框架&#xff0c;而是形成以Spring为基础的生态圈&#xff0c;如(Spring Boot,Spring Cloud,Spring Security等) Spring 两大核心技术 控制反转(IoC)面…

Excel 小黑第12套

对应大猫13 涉及金额修改 -数字组 -修改会计专用 VLOOKUP函数使用&#xff08;查找目标&#xff0c;查找范围&#xff08;F4 绝对引用&#xff09;&#xff0c;返回值的所在列数&#xff0c;精确查找或模糊查找&#xff09;双击填充柄就会显示所有值 这个逗号要中文的不能英…

基于Spring Boot的冷链物流系统的设计与实现的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

牛客周赛85 题解 Java ABCDEFG

A小紫的均势博弈 判断输入的 n 是奇数还是偶数 import java.io.*; import java.math.*; import java.util.*;public class Main {static IoScanner sc new IoScanner();static final int mod(int) (1e97);static void solve() throws IOException {int nsc.nextInt();if(n%2…