Given a singly linked list, determine if it is a palindrome.

Example 1:

Input: 1->2
Output: false

Example 2:

Input: 1->2->2->1
Output: true

Follow up:
Could you do it in O(n) time and O(1) space?

找中点,反转后半部分,再一一比较

time: O(n), space: O(1)

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public boolean isPalindrome(ListNode head) {if(head == null || head.next == null) {return true;}ListNode fast = head, slow = head;while(fast.next != null && fast.next.next != null) {fast = fast.next.next;slow = slow.next;}ListNode p1 = head, p2 = reverse(slow.next);slow.next = null;while(p1 != null && p2 != null) {if(p1.val != p2.val) {return false;}p1 = p1.next;p2 = p2.next;}return true;}private ListNode reverse(ListNode head) {if(head == null || head.next == null) {return head;}ListNode prev = null, cur = head;while(cur != null) {ListNode next = cur.next;cur.next = prev;prev = cur;cur = next;}return prev;}
}

转载于:https://www.cnblogs.com/fatttcat/p/10178105.html

234. Palindrome Linked List - Easy相关推荐

  1. 【回文串7】LeetCode 234. Palindrome Linked List

    LeetCode 234. Palindrome Linked List Solution1:我的答案 一遍过,哈哈哈! /*** Definition for singly-linked list. ...

  2. 【easy】234. Palindrome Linked List

    ques: 判断一个链表是否回文 Could you do it in O(n) time and O(1) space? method:先将链表分为两部分,将后半部分反转,最后从前往后判断是否相等. ...

  3. [LeetCode] 234. Palindrome Linked List 回文链表

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

  4. 234. Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time ...

  5. LeetCode 234. Palindrome Linked List

    题目: Given a singly linked list, determine if it is a palindrome. 思路: 给定一个链表,判断它是不是回文链表 根据链表的奇偶分情况,然后 ...

  6. [LeetCode] 234. Palindrome Linked List_Easy tag: Linked List

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

  7. LeetCode 234 Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. 思路: 回文结构从后向前遍历与从前向后遍历的结果是相同的,可以利用一个栈的结构 ...

  8. leetcode python3 简单题234. Palindrome Linked List

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第二百三十四题 (1)题目 英文: Given a singly linked li ...

  9. [swift] LeetCode 234. Palindrome Linked List

    Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time ...

最新文章

  1. java substring 性能_《Java程序性能优化》subString()方法的内存泄露
  2. 协防差_西班牙男篮的投篮比美国还差 为什么在2019年世界杯夺冠
  3. 美国国家科学院发布:材料有哪些研究前沿?
  4. 第58件事 借势文案创作实例
  5. ajax后台如何把对象转为json_57. Django 2.1.7 查询数据返回json格式
  6. 新手入门深度学习 | 3-1:数据管道Dataset
  7. MYSQL数据库注释
  8. docker简介以及优缺点
  9. 关于Log4j的初始化
  10. diskgenius创建efi分区_DISKGEN 专业版修改硬盘为GPT分区 ESP分区图文教程
  11. SharePoint 2010 中有个新的列表模板“导入电子表格”可以直接导入Excel数据并创建为列表 ....
  12. java坦克代码_Java坦克大战源代码
  13. JAVAEE工程师-2年经验-个人简历
  14. TD回撤/斐波那契回撤
  15. StrokeIt 按键列表
  16. 慕课网风袖小程序 一一第一阶段
  17. iOS底层weak的实现原理
  18. linux修改密码时候提示太简单了怎么办,linux修改密码
  19. w500 安装 gentoo相关优化
  20. PHP 常用函数 - 数组函数

热门文章

  1. .NET中获取电脑名、IP及用户名方法
  2. Java泛型使用需要小心
  3. C#中判断空字符串的3种方法性能分析【月儿原创】
  4. HTMLButton控件下的Confirm()
  5. 服务器架设笔记——Apache模块开发基础知识
  6. 使用VC实现一个“智能”自增减线程池
  7. CUDA Samples: Julia
  8. Caffe源码中各种依赖库的作用及简单使用
  9. 已知空间一点到另外两点直线的距离
  10. 【经验】网络加速:pip