题解 | #判断一个链表是否为回文结构#
判断一个链表是否为回文结构
https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 the head * @return bool布尔型 */ func isPail( head *ListNode ) bool { // write code here if head==nil|| head.Next==nil{ return true } var left,mid,fast *ListNode mid=head fast=head for fast!=nil&&fast.Next!=nil{ //找中点 left=mid mid=mid.Next fast=fast.Next.Next } left.Next=nil r:=reverse(mid) //反转后半段链表 for head!=nil{ //对比 if head.Val!=r.Val{ return false } head=head.Next r=r.Next } return true } func reverse(p *ListNode)*ListNode{ // var pre,cur *ListNode for p!=nil{ cur=p p=p.Next cur.Next=pre pre=cur } return pre }