Leetcode—234.回文链表【简单】

2023每日刷题(二十七)

Leetcode—234.回文链表

在这里插入图片描述

直接法实现代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
bool isPalindrome(struct ListNode* head) {if(head == NULL) {return true;}if(head->next == NULL) {return true;}if(head->next->next == NULL) {return head->next->val == head->val;}int len = 0;struct ListNode* p = head;while(p != NULL) {len++;p = p->next;}int *arr = (int *)malloc(sizeof(int) * len);p = head;int i = 0;while(p != NULL) {arr[i++] = p->val;p = p->next;}for(i = 0; i < len / 2; i++) {if(arr[i] != arr[len - 1 - i]) {return false;}}return true;
}

运行结果

在这里插入图片描述

快慢指针+链表原地逆置实现代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/// 找到中间节点
struct ListNode* midNode(struct ListNode* head) {struct ListNode* fast, *slow;fast = head;slow = head;while(fast->next != NULL && fast->next->next != NULL) {slow = slow->next;fast = fast->next->next;}return slow;
}// 翻转链表
struct ListNode* reverseList(struct ListNode* head) {struct ListNode* p = head, *q = head;struct ListNode* h = (struct ListNode*)malloc(sizeof(struct ListNode));h->next = NULL;while(p != NULL) {q = p->next;p->next = h->next;h->next = p;p = q;}return h->next;
}bool isPalindrome(struct ListNode* head) {if(head == NULL) {return true;}if(head->next == NULL) {return true;}if(head->next->next == NULL) {return head->next->val == head->val;}struct ListNode* mid = midNode(head);struct ListNode* head2 = mid->next;head2 = reverseList(head2);while(head2 != NULL) {if(head->val != head2->val) {return false;}head = head->next;head2 = head2->next;}return true;
}

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

Stable Diffusion webui 源码调试(三)

Stable Diffusion webui 源码调试&#xff08;三&#xff09; 个人模型主页&#xff1a;LibLibai stable-diffusion-webui 版本&#xff1a;v1.4.1 内容更新随机&#xff0c;看心情调试代码~ shared 变量 shared变量&#xff0c;简直是一锅大杂烩&#xff0c;shared变量存放…

Oracle(16)Managing Privileges

目录 一、基础知识 1、Managing Privileges管理权限 2、System Privileges 系统特权 3、System Privileges : Example系统权限&#xff1a;示例 4、Who Can Grant or Revoke? 谁可以授予或撤销权限&#xff1f; 5、The PUBLIC 6、SYSDBA and SYSOPER 7、Revoke with A…

Minio

Minio学习 MinioMinio介绍安装window安装1.下载服务端和客户端文件[地址](https://min.io/download#/windows)2.创建minio相关目录3.启动minio服务方式一方式二4.查看minio版本5.访问minio控制台 linux安装docker安装 Minio Minio介绍 MinIO 是在 Apache License v2.0 下发布…

通过easyexcel导出数据到excel表格

这篇文章简单介绍一下怎么通过easyexcel做数据的导出&#xff0c;使用之前easyui构建的歌曲列表crud应用&#xff0c;添加一个导出按钮&#xff0c;点击的时候直接连接后端接口地址&#xff0c;在后端的接口完成数据的导出功能。 前端页面完整代码 let editingId; let request…

git使用笔记

0.记录使用经验 1.提交和push代码 git add .添加修改 git commit -m "提交日志" git push origin branch_name推送分支名称代码到远程服务器对应分支 1.1日常操作 git status查看仓库状态 git branch查看分支 git branch -a查看所有分支【包含远程】 git checkou…

STM32--EXTI外部中断

一、什么是外部中断&#xff1f; 外部中断是指由微处理器或微控制器外部引脚&#xff08;通常是GPIO引脚&#xff09;上的外部事件触发的中断。这些外部事件可以是来自外部设备、传感器或其他外部信号源的触发。 二、外部中断详细内容 由AFIO时钟管理的寄存器有AFIO_EVCR(时…

Dell戴尔灵越Inspiron 7700 AIO一体机电脑原厂预装Windows10系统

链接&#xff1a;https://pan.baidu.com/s/1-slgR9t4Df_eko0Y6xaeyw?pwdmk0p 提取码&#xff1a;mk0p 灵越7700一体机原装出厂系统自带声卡驱动、无线网卡驱动、面部识别等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 由于时间关系,…

自定义Graph Component:1-开发指南

可以使用自定义NLU组件和策略扩展Rasa&#xff0c;本文提供了如何开发自己的自定义Graph Component指南。   Rasa提供各种开箱即用的NLU组件和策略。可以使用自定义Graph Component对其进行自定义或从头开始创建自己的组件。   要在Rasa中使用自定义Graph Component&#x…

c语言:解决数组中数组缺少单个的元素的问题

题目&#xff1a;数组nums包含从0到n的所以整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。O(n)时间内完成。 如&#xff0c;输入&#xff1a;【3&#xff0c;0&#xff0c;1】。 输出&#xff1a; 2 三种方法 &#xff1a; 方法1&#xff1a;排序&#xf…

超详细介绍对极几何和立体视觉及 Python 和 C++实现

您是否想过为什么戴着特殊的 3D 眼镜观看电影时可以体验到美妙的 3D 效果?或者为什么闭上一只眼睛很难接住板球?这一切都与立体视觉有关,立体视觉是我们用双眼感知深度的能力。这篇文章使用 OpenCV 和立体视觉为计算机提供这种感知深度的能力。代码以 Python 和 C++ 形式提供…

【0基础学Java第九课】-- 抽象类和接口

9. 抽象类和接口 9.1 抽象类9.1.1 抽象类概念9.1.2 抽象类语法9.1.3 抽象类的特性9.1.4 抽象类的作用 9.2 接口9.2.1 接口的概念9.2.2 语法规则9.2.3 接口使用9.2.4 接口特性9.2.5 实现多个接口9.2.6 接口的继承9.2.9 抽象类和接口的区别 9.3 Object类9.3.1 获取对象方法9.3.1 …

centos中安装的goland配置sdk报错:所选的目录不是Go SDK的有效主路经

选中目录后一直报错&#xff1a; 正确的位置&#xff1a; 原因竟然是使用 解压go1.21.4.linux-amd64.tar.gz 包出来&#xff0c;少了scr和test目录&#xff0c;重新解压后可以正确设定SDK主目录。 有同样问题的可以确认一下。 tar -C /usr/local -zxvf go1.19.2.linux-amd64.…