1. 什么是回文链表
回文链表是指一个链表中的元素从左到右读取和从右到左读取的顺序相同,即链表中的元素构成一个回文序列。例如:1->2->2->1,这是一个回文链表。
2. LeetCode如何判断回文链表
LeetCode通过使用双指针法,使用两个指针分别从链表的头部和尾部开始遍历,如果链表中的元素构成一个回文序列,则两个指针所指的元素值相等,如果不相等,则不是回文链表。
3. LeetCode如何判断回文链表的实现代码
public boolean isPalindrome(ListNode head) {ListNode fast = head, slow = head;while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}if (fast != null) { // odd nodes: let right half smallerslow = slow.next;}slow = reverse(slow);fast = head;while (slow != null) {if (fast.val != slow.val) {return false;}fast = fast.next;slow = slow.next;}return true;}public ListNode reverse(ListNode head) {ListNode prev = null;while (head != null) {ListNode next = head.next;head.next = prev;prev = head;head = next;}return prev;}