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

(2)leetcode 234.回文链表 141.环形链表

234.回文链表

题目链接

234.回文链表

解题思路与代码

获取链表的中间段。

我们将mid这个节点记录下来,然后将这段链表反转,以下是反转的逻辑,最后我们将pre返回就是结果,就是通过中间变量tem记录位置从而实现链表的反转

最后结果比较的的时候,就变成了如图形式

此时就很简单了,我们两边遍历head和head2进行比较,一旦不相同就返回false,比较结束没有返回false说明是回文链表,返回true.

(c++代码)

/*** 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* reverseList(ListNode* cur) {ListNode* pre = NULL;while(cur != NULL) {ListNode* tem = cur->next;cur->next = pre;pre = cur;cur = tem;}return pre;
}ListNode* middleNode(ListNode* head) {ListNode* slow = head;ListNode* fast = head;while(fast != NULL && fast->next != NULL) {slow = slow ->next;fast = fast->next->next;}return slow;
}bool isPalindrome(ListNode* head) {ListNode* mid = middleNode(head);ListNode* head2 = reverseList(mid);while(head != mid) {if(head->val != head2 ->val) {return false;}head = head->next;head2 = head2->next;}return true;}
};

141.环形链表

题目链接

141.环形链表

解题思路与代码

举例,像这个,我们从head开始遍历,每次遍历的时候,遍历过一遍就存入set, 如果有环的话,遍历到重复的结点时,就返回true。

像这个,遍历到最后就是到了NULL,跳出循环,然后返回false.

(c++代码)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:bool hasCycle(ListNode *head) {unordered_set<ListNode*> st;while(head != NULL) {if(st.find(head) != st.end()) {return true;}st.insert(head);head = head ->next;}return false;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微信支付开发-后台统计工厂实现
  • 站群服务器是指什么?企业为什么选择站群服务器?
  • 华为HarmonyOS地图服务 11 - 如何在地图上增加点注释?
  • 页面关键路径渲染详解
  • uniapp vue3 梯形选项卡组件
  • SpringBoot Admin调整类的日志级别
  • 2.计算机网络基础
  • 简单了解Maven与安装
  • 加密与安全_优雅存储二要素(AES-256-GCM )
  • 【redis】常用数据类型及命令
  • mongoDB-1
  • JavaEE: 深入探索TCP网络编程的奇妙世界(一)
  • 半导体制造技术中的沉积和驱入(Deposition and drive-in)过程
  • C语言字符串学习
  • linux 双网卡服务器突然断电后网卡单通故障解决
  • CentOS7简单部署NFS
  • Effective Java 笔记(一)
  • Vue UI框架库开发介绍
  • Vue.js 移动端适配之 vw 解决方案
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • WePY 在小程序性能调优上做出的探究
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从伪并行的 Python 多线程说起
  • 动态魔术使用DBMS_SQL
  • 分享几个不错的工具
  • 类orAPI - 收藏集 - 掘金
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • ​iOS安全加固方法及实现
  • #if和#ifdef区别
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Git) gitignore基础使用
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (回溯) LeetCode 78. 子集
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (算法)求1到1亿间的质数或素数
  • (算法设计与分析)第一章算法概述-习题
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)http-server应用
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [000-01-022].第03节:RabbitMQ环境搭建
  • [Android]如何调试Native memory crash issue
  • [autojs]逍遥模拟器和vscode对接
  • [CF]Codeforces Round #551 (Div. 2)
  • [Django 0-1] Core.Email 模块
  • [GXYCTF2019]禁止套娃1
  • [IE编程] IE 是如何决定Accept-Language 属性的
  • [js]js设计模式小结
  • [kubernetes]控制平面ETCD
  • [LeetCode 127] - 单词梯(Word Ladder)