题解 | #判断一个链表是否为回文结构#
判断一个链表是否为回文结构
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,再来用双指针判断
查看19道真题和解析