【LeetCode】 234. Palindrome Linked List

来源:互联网 发布:相片排版打印软件 编辑:程序博客网 时间:2024/06/07 05:24

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?

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public boolean isPalindrome(ListNode head) {        ListNode runner = head, walker = head;        while (runner != null && runner.next != null) {            runner = runner.next.next;            walker = walker.next;        }        if (runner != null) {            walker = walker.next;        }        ListNode reverse = null;        while (walker != null) {            ListNode temp = walker.next;            walker.next = reverse;            reverse = walker;            walker = temp;        }        while (reverse != null) {            if (head.val != reverse.val) {                return false;            }            head = head.next;            reverse = reverse.next;        }        return true;    }}


0 0
原创粉丝点击