题解 | #判断一个链表是否为回文结构#
判断一个链表是否为回文结构
https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 the head # @return bool布尔型 # class Solution: def isPail(self , head: ListNode) -> bool: if head == None: return True list1 = [] while head: list1.append(head.val) head = head.next left = 0 right = len(list1)-1 while left <= right: if list1[left]!=list1[right]: return False left +=1 right -=1 return True
双指针思路,判断是否是回文结构,即是判断左右两边的数值是否相等,所以这里就要用到双指针的思路,从两边分别向里遍历,如果每个值都相等,证明是回文。但链表不能逆序遍历,所以要先将链表的值拿出来转为list,再来用双指针判断