博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
234. Palindrome Linked List - Easy
阅读量:6503 次
发布时间:2019-06-24

本文共 1372 字,大约阅读时间需要 4 分钟。

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

Example 1:

Input: 1->2Output: false

Example 2:

Input: 1->2->2->1Output: 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

你可能感兴趣的文章
PHP通过读取DOM抓取信息
查看>>
DICOM医学图像处理:DICOM网络传输
查看>>
nio和传统Io的区别
查看>>
移动端网页布局中需要注意事项以及解决方法总结
查看>>
(原创)Linux下查看系统版本号信息的方法
查看>>
oracle
查看>>
redis使用过程中主机内核层面的一些优化
查看>>
我也要谈谈大型网站架构之系列(2)——纵观历史演变(下)
查看>>
大话设计模式(Golang) 二、策略模式
查看>>
使用PostgreSQL 9.6 架设mediawiki服务器
查看>>
数据库服务器硬件对性能的影响
查看>>
LVM
查看>>
windows+群辉服务器环境下,搭建git版本管理
查看>>
Ubuntu 修改源
查看>>
php 几个比较实用的函数
查看>>
(译)OpenGL ES2.0 – Iphone开发指引
查看>>
@RestController 与 @RequestMapping
查看>>
黑马程序员.bobo.DAY.1
查看>>
Unity shader 官网文档全方位学习(二)
查看>>
pbrun
查看>>