JAVA链表中的回文链表结构
作为一个java初学者,最近遇到了回文链表结构这个难题,经过一番学习总算搞清楚个大概。
先来说一下什么是回文链表,会问链表在我们生活中经常能够遇到。会问链表的结构就是
例如:1->2->3->2->1。我们将它反转过来还是与原链表相同,这种就称为回文结构。
具体方法:1.先找到链表的中间位置
2.然后将中间位置的链表反转
3.从两边向中间遍历
代码如图
class Node {public int data;public Node next;//构造方法public Node(int data) {this.data = data;this.next = null;}
}
public class MyLinkedList {public Node head;//保存单链表的头节点的引用public boolean chkPalindrome() {//判断头节点是否为空if(this.head == null) {return false;}//判断头节点的next是否为空,如果为空,证明只有一个链表,就是回文链表if(this.head.next == null) {return true;}//找出链表的中间位置Node fast = this.head;Node slow = this.head;while(fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}//把中间位置之后的链表反转Node cur = slow.next;while(cur != null) {Node curNext = cur.next;cur.next = slow;slow = cur;cur = curNext;}//从两边向中间遍历while(slow != this.head) {if(slow.data != this.head.data) {return false;}if(this.head.next == slow) {return true;}slow = slow.next;this.head = this.head.next;}return true;}
}
类似的链表题还有很多,我也是刚刚接触,这个博客就当复习了。如果有不对的地方还请大佬指正。
JAVA链表中的回文链表结构相关推荐
- 链表题目---4 删除链表中重复的结点 和 判断链表是否为回文链表
删除链表中重复的结点 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {} ...
- 【链表】判断一个链表是否是回文链表
思路一:链表转为字符串,判断字符串是否是回文串 思路二:双指针 可以使用快慢指针,快指针的速度是慢指针的两倍,当快指针到达链表尾部时 ,慢指针到达中间位置.将慢指针之后的部分进行反转,再与前半部分比较 ...
- LeetCode234题:回文链表
题目描述: 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 思路分析: 迭代法: ...
- 链表-回文链表(复制+双指针法)
题意: 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 思路: 这里如果是数组列表 ...
- 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...
- 234. Palindrome Linked List 回文链表
请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复 ...
- python回文链表_leetcode链表之回文链表
序 本文主要记录一下leetcode链表之回文链表 题目 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2-> ...
- LeetCode 234. 回文链表(快慢指针+链表反转)
1. 题目 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false示例 2: 输入: 1->2->2->1 输出: true进阶: 你能否用 O(n) ...
- [LeetCode] 234. Palindrome Linked List 回文链表
Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...
- leet234.回文链表
题目: 请检查一个链表是否为回文链表. 进阶: 你能在 O(n) 的时间和 O(1) 的额外空间中做到吗? 分析: 该题不够严谨,要满足时间.空间复杂度要求,应该要求链表无环 回文链表要求正逆方向对应 ...
最新文章
- Ajax实现无刷新树
- 以前不知道的,现在知道了(微机原理)
- prefetch下载SRA 数据
- 手把手教你搭建Linux开发环境(VMware+Ubuntu)(四)——gcc编译器的安装和使用
- Java Number 类
- linux 更改mysql的数据库目录
- 计算机栏和用户栏有啥区别,任务栏与桌面的区别是
- [翻译]Hystrix wiki–How it Works
- 选择排序算法(C++版)
- form触发2次 layui_Springboot+layui上传文件携带参数前后台代码
- JAVA毕设项目宠物店管理系统设计与实现(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
- sql server设置星期一为每周第一天
- Java处理时间,得到指定几天前的凌晨0点时间戳
- 华为煤矿军团首登央视 | 发布会金句爆棚
- 网易2017春招[编程题]赶去公司@Java
- SpringBoot库存管理系统,拿来学习真香
- EasyExcel与EasyPoi性能对比
- Learning Synergies between Pushing and Grasping with Self-supervised Deep Reinforcement Learning
- 使用vlookup嵌套INDIRECT函数实现跨表数据引用
- 网站性能优化工具大全
热门文章
- 盗墓笔记—阿里旺旺ActiveX控件imageMan.dll栈溢出漏洞研究
- [乱七八糟]《进化论——人类科学史上最大的谎言》
- 组合数学在软件领域的运用
- 淘宝按图搜索商品(拍立淘)、图片上传API接口、图片识别商品接口img2text标题栏、链接及图片相关参数字段API数据获取调用示例
- s深度linux没有ll等命令的解决办法
- 计算机毕业设计之java+springboot基于vue的4S店车辆管理系统
- 服务器上显示公式,Markdown中实时显示数学公式的方法
- android实现半透明属性,Activity透明/半透明效果的设置transparent(两种实现方法)
- android实现activity半透明色
- 鸿蒙系统和安装包,鸿蒙系统安装包