题解 | #判断一个链表是否为回文结构#
判断一个链表是否为回文结构
https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 the head * @return bool布尔型 */ public boolean isPail (ListNode head) { //快慢指针,确定中点 ListNode fast = head.next,slow = head; while(fast !=null&&fast.next!=null){ slow=slow.next; fast=fast.next.next; } //中点反转,遍历比较 slow=Reverse(slow); ListNode q =head; while(q!=null){ if(slow.val!=q.val) return false; slow=slow.next; q=q.next; } return true; } //链表反转 ListNode Reverse(ListNode head){ ListNode prev = null; while(head !=null){ ListNode next = head.next; head.next=prev; prev = head; head = next; } return prev; } }