leetcode题解-234. Palindrome Linked List
来源:互联网 发布:来自故宫的礼物 淘宝 编辑:程序博客网 时间:2024/06/05 00:09
Given a singly linked list, determine if it is a palindrome.Follow up:Could you do it in O(n) time and O(1) space?
题目是想要判断一个链表的值是否满足回文条件。要求使用O(1)的空间复杂度可能是本题的难点。这就要求我们不能使用别得数据结构对链表的值进行保存在判断。所以我一开始就想能否使用链表翻转来实现,因为感觉这是唯一的突破口==但是如果对原始链表进行翻转,如果in-place则会丢失元链表,否则就会使用额外的存储空间。然后继续分析本题,会发现如果链表是回文,那么前半部分和后半部分一定是一样的。所以我肯可以将后半部分反转,然后再跟前半部分进行比较。这样效果是最好的。代码如下所示:
public static boolean isPalindrome1(ListNode head) { ListNode fast=head, slow=head; while(fast != null && fast.next != null){ fast = fast.next.next; slow = slow.next; } //如果链表长度为奇数 if(fast != null) slow = slow.next; ListNode end=null, tmp; while(slow != null){ tmp = slow.next; slow.next = end; end = slow; slow = tmp; } while(end != null){ if(end.val != head.val) return false; end = end.next; head = head.next; } return true; }
阅读全文
0 0
- leetcode题解-234. Palindrome Linked List
- LeetCode题解:Palindrome Linked List
- LeetCode 题解(186): Palindrome Linked List
- LeetCode题解-234-Palindrome Linked List
- LeetCode 234 Palindrome Linked List题解
- [leetcode] 234.Palindrome Linked List
- [LeetCode]234.Palindrome Linked List
- [leetcode] 234.Palindrome Linked List
- 【leetcode】234. Palindrome Linked List
- 【LeetCode】234. Palindrome Linked List
- [leetcode] 234. Palindrome Linked List
- 234. Palindrome Linked List LeetCode
- LeetCode--234. Palindrome Linked List
- LeetCode 234. Palindrome Linked List
- 【LeetCode】234. Palindrome Linked List
- leetcode 234. Palindrome Linked List
- LeetCode *** 234. Palindrome Linked List
- LeetCode 234. Palindrome Linked List
- Android 仿美团顶部滑动菜单
- 软件概要设计与详细设计的区别
- Mongodb中使用db.collection.copyTo()方法遇到的坑,请慎用!
- ShuffleMapTask执行结果和Driver的交互原理及源码
- iOS 取四舍五入取平均值
- leetcode题解-234. Palindrome Linked List
- iOS 【你的项目内存溢出了吗?】
- 使用Gecco写Java简单爬虫
- 使用SVN
- ARP协议
- Listener监听器总结
- 使用Lable展示emoji表情
- 2017.06.23 python套接字第1次笔记
- 8.4.2 ResultTask执行结果与Driver的交互原理及源码详解