news 2026/8/16 7:58:14

算法4:链表的回文结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法4:链表的回文结构

题目链接

解析:

完整代码:

/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} };*/ class PalindromeList { public: bool chkPalindrome(ListNode* A) { // write code here ListNode* pcur = A; int i = 0; int arr [900] = {0}; //将链表中的值存放到数组中 while ( pcur ) { arr[ i++ ] = pcur -> val; pcur = pcur -> next; } int left = 0; int right = i - 1; // i 表示的是数组中有效的元素个数, i - 1 代表下标 while ( left < right ) { if ( arr [left] != arr [right]) return false; left++; right--; } //跳出循环,表示 left 和 right 相等,此时就是回文结构 return true; } };

注意:

上面的代码限于在牛客网,放在力扣上就不行了,因为在牛客网明确指出了链表的长度,此时就可以取巧将数组的大小规定为900

力扣的相同题目链接

解析:

完整代码:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: //找中间节点 ListNode* midNode(ListNode* head) { ListNode* slow,*fast; slow = fast = head; while( fast && fast -> next) { slow = slow -> next; fast = fast -> next -> next; } return slow; } //反转链表 ListNode* reverseListNode(ListNode* head) { if(head == NULL) return NULL; ListNode* n1,*n2,*n3; n1 = NULL, n2 = head, n3 = n2->next; while(n2) { n2->next = n1; n1 = n2; n2 = n3; if(n3) n3 = n3->next; } return n1; } bool isPalindrome(ListNode* head) { //1、找中间节点 ListNode* mid = midNode(head); //2、反转以中间节点为头的链表 ListNode* ret = reverseListNode(mid); //3、遍历两个链表,两个指针比较,循环结束条件:right = NULL ListNode* left,*right; left = head,right = ret; while( right ) { if( left ->val != right ->val) return false; left = left->next; right = right ->next; } //跳出循环,相等——回文结构 return true; } };

思路3用的就是多个方法的集合

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 16:06:10

5步革新空洞骑士模组管理:Scarab全攻略

5步革新空洞骑士模组管理&#xff1a;Scarab全攻略 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 空洞骑士玩家常面临模组安装繁琐、版本冲突和依赖管理复杂等问题。Scarab作…

作者头像 李华
网站建设 2026/7/14 16:06:12

【ComfyUI实战】从零构建漫画风AI工作流:模型、提示词与迭代优化

1. ComfyUI入门&#xff1a;认识你的漫画创作工具箱 第一次打开ComfyUI时&#xff0c;那个布满连线的界面确实容易让人发懵。但别担心&#xff0c;这就像乐高积木——看似复杂的结构都是由基础模块组成的。我刚开始接触时也花了三天才搞明白各个节点的作用&#xff0c;现在回头…

作者头像 李华
网站建设 2026/7/14 16:06:09

FaceRecon-3D自动化测试:持续集成实践

FaceRecon-3D自动化测试&#xff1a;持续集成实践 1. 为什么FaceRecon-3D需要自动化测试 你可能已经用FaceRecon-3D生成过几个惊艳的3D人脸模型&#xff0c;看着自拍照变成可旋转、可缩放的三维结构&#xff0c;确实挺让人兴奋的。但当它要进入团队协作、产品集成或者长期维护…

作者头像 李华
网站建设 2026/7/14 16:06:13

Qwen3-14b_int4_awq部署实战教程:vLLM+Chainlit一键搭建文本生成服务

Qwen3-14b_int4_awq部署实战教程&#xff1a;vLLMChainlit一键搭建文本生成服务 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14b模型的优化版本&#xff0c;采用了int4精度和AWQ&#xff08;Activation-aware Weight Quantization&#xff09;量化技术。这个版本通过AngelSl…

作者头像 李华