[LeetCode]234. Palindrome Linked List判断回文链表
2024-09-07 01:44:43
重点是:
1.快慢指针找到链表的中点。快指针一次走两步,慢指针一次走一步,分清奇偶数情况。
2.反转链表。pre代表已经反转好的,每次将当前节点指向pre
/*
快慢指针得到链表中间,然后用206题方法反转后半部分,然后比较
*/
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public boolean isPalindrome(ListNode head) {
//快慢指针
ListNode slow = head,fast = head;
while (fast!=null&&fast.next!=null)
{
slow = slow.next;
fast = fast.next.next;
}
//节点如果是奇数,fast应该不是null,如果是偶数就是null
if (fast!=null)
{
slow = reverseList(slow.next);
}
else slow = reverseList(slow);
while (slow!=null)
{
if (head.val!=slow.val) return false;
slow = slow.next;
head = head.next;
}
return true;
}
public ListNode reverseList(ListNode head) {
ListNode pre = null;
while (head!=null)
{
//下边要改变head,所以先保存下来next
ListNode next = head.next;
//将当前节点指向pre
head.next = pre;
//更新pre
pre = head;
//更新head往下遍历
head = next;
}
return pre;
}
最新文章
- java IO流 之 其他流
- How to acquire an Android phone with locked bootloader?
- 【Mail】JavaMail发送带附件的邮件(二)
- validation验证器指定action中某些方法不需要验证
- Redis集群知识解析
- ASP.NET WebForm中用async/await实现异步出人意料的简单
- Http协议之Request和Response
- Gunicorn + Django 部署
- 使--no-ri --no-rdoc成为gem安装的默认选项
- 查看堵塞的SQL
- NSArray和NSSet的区别
- RACSignal的一些常用用法
- js异步梳理:1.从浏览器的多进程到JS的单线程,理解JS运行机制
- ORACLE多表关联UPDATE 语句[z]
- Window上,启动Tomcat服务之后,关闭启动窗口,服务器也随之关闭
- android 注入so
- spring boot redis ->; @Cacheable,@CacheEvict, @CachePut
- JVM进程状态监控
- 接收与发送邮件(XE10.2+WIN764)
- erlang 一个高性能web框架 Cowboy 的使用笔记
热门文章
- 蒲公英 · JELLY技术周刊 Vol.32: 前端的自我进化之路
- python语法元素的名称
- 冲刺随笔——Day_Three
- 4、Spring Cloud Eureka
- PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup、colorRole的用途和含义
- 第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项的子项排序sortChildren及获取项对应的树型部件对象方法
- java后端开发学习路线
- ES6新特性之箭头函数与function的区别
- LeetCode初级算法之字符串:242 有效的字母异位词