【Leetcode-Easy-234】Palindrome Linked List
2017-10-19 15:06
387 查看
【Leetcode-Easy-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 and O(1) space?
思路
双指针找到链表的中间结点;反转链表的后半部分;
比较链表的前半部分和“后半部分”。
程序
/** * 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; ListNode slow = head; while (fast != null && fast.next != null){ fast = fast.next.next; slow = slow.next; } // slow 是链表后半截的头指针 if (fast != null) slow = slow.next; ListNode head1 = head; ListNode head2 = reverseList(slow); // 反转链表的后半截 while (head1 != null && head2 != null){ if (head1.val != head2.val) return false; head1 = head1.next; head2 = head2.next; } return true; } // 反转链表 private ListNode reverseList(ListNode head){ if (head == null || head.next == null) return head; ListNode first = head; ListNode second = head.next; first.next = null; // 表示链表末尾 while (second != null){ ListNode tempNode = second.next; second.next = first; first = second; second = tempNode; } return first; } }
相关文章推荐
- [Leetcode 234, Easy] Palindrome Linked List
- LeetCode 234 Palindrome Linked List
- [Leetcode] #234 Palindrome Linked List
- leetcode 234 Palindrome Linked List C++
- 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
- Palindrome Linked List leetcode 234
- leetcode234~Palindrome Linked List
- [LeetCode-234] Palindrome Linked List(回文链表、链表中间节点查找)
- Leetcode 234 Palindrome Linked List 复杂度为时间O(n) 和空间(1)解法
- LeetCode_234 Palindrome Linked List
- [C语言][LeetCode][234]Palindrome Linked List
- Leetcode_234_Palindrome Linked List
- Leetcode 234 Palindrome Linked List 复杂度为时间O(n) 和空间(1)解法
- Leetcode 234 Palindrome Linked List
- leetcode(234):Palindrome Linked List
- Easy-题目54:234. Palindrome Linked List