题解 | #判断一个链表是否为回文结构#

判断一个链表是否为回文结构

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 not head:
            return False
        if not head.next:
            return True
        
        left = head
        right = head
        a = []
        while right and right.next:
            # 通过双指针找到中间位置
            a.append(left.val)
            left = left.next
            right = right.next.next
        
        if not right:
            # ABBA 型
            while left:
                if left.val != a.pop():
                    return False
                left = left.next
            return True
        elif not right.next:
            # ABA 型
            # 此时的left指向了中间的位置,所以需要下移一位
            left = left.next
            while left:
                if left.val != a.pop():
                    return False
                left = left.next
            return True

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-04 05:12
瑞雪兆丰年_:可以贴个超级大的校徽,以防HR眼拙
点赞 评论 收藏
分享
09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务