题解 | #判断一个链表是否为回文结构#
判断一个链表是否为回文结构
https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * 翻转后半部分链表 * @param head ListNode类 the head * @return bool布尔型 */ public boolean isPail (ListNode head) { if (head == null) return false; // write code here ListNode slow = head, fast = head, pre = head; while (fast != null) { pre = slow; slow = slow.next; fast = fast.next; if (fast != null) fast = fast.next; } pre.next = null; ListNode reverse = reverse(slow); ListNode T = head; while (T != null && reverse != null) { if (T.val != reverse.val) return false; T = T.next; reverse = reverse.next; } return true; } public ListNode reverse(ListNode node) { ListNode pre = null; ListNode cur = node; while (cur != null) { ListNode T = cur.next; cur.next = pre; pre = cur; cur = T; } return pre; } }