# -*- coding:utf-8 -*-
'''
题目描述
请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false
@author chimuuu
'''
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Palindrome:
def isPalindrome(self, pHead):
# write code here
if pHead == None or pHead.next == None:
return True
pslow = pHead
pfast = pHead
stack = [pslow.val]
# 查找链表中心
while True:
# 奇数链,比较从后半部分第一个开始
if not pfast.next:
mid = pslow
break
# 偶数链,比较从后半部分第一个开始
elif pfast and not pfast.next.next:
mid = pslow.next
break
pslow = pslow.next
pfast = pfast.next.
检查链表是否为回文 python实现
最新推荐文章于 2024-01-19 21:57:04 发布