检查链表是否为回文 python实现
来源:互联网 发布:搜索算法工程师 编辑:程序博客网 时间:2024/06/05 02:58
# -*- 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 = Noneclass 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.next stack.append(pslow.val) # 回文对比 print stack while stack and mid.next: tmp = stack.pop() if mid.val != tmp: return False print mid.val, tmp mid = mid.next return Truenode1 = ListNode(1)node2 = ListNode(2)node3 = ListNode(3)# node4 = ListNode(3)node5 = ListNode(2)node6 = ListNode(1)node1.next = node2node2.next = node3node3.next = node5# node4.next = node5node5.next = node6S = Palindrome()p = S.isPalindrome(node1)print(p)
阅读全文
0 0
- 检查链表是否为回文 python实现
- 检查链表是否为回文
- 检查链表是否为回文
- 检查链表是否为回文
- 《CTCI》2.7 检查链表是否为回文
- 【Java】编写函数,检查链表是否为回文
- 面试13之检查链表是否为回文
- 判断字符串是否为回文 python实现
- 检查链表是否是回文
- LinkLists 检查一个链表是否为回文 Check if a linked list is palindrome @CareerCup
- 9.2链表(七)——检查链表是否为回文
- 程序员面试金典: 9.2链表 2.7检查链表是否为回文
- 检查字符串是否为回文字符串
- 判断一个链表是否为回文结构(java实现)
- CCI 2.7 链表是否为回文
- 检查单链表是否为循环链表
- FCC--Check for Palindromes(检查字符串是否为回文)
- [一天一项目]检查字符串是否为回文
- 26. Remove Duplicates from Sorted Array
- 云上如何做冷热数据分离
- 从最大似然到EM算法浅解
- 用composer搭建php框架(四)--MVC之视图
- 1.1.1列表
- 检查链表是否为回文 python实现
- Android Zygote启动流程源码解析
- web实现进入指定目录
- Android 如何解决Android的库自定义属性和生成过程中的包名重映射?
- java.lang.AbstractMethodError: org.apache.bval.jsr303.ConfigurationImpl.getDefaultParameterName....
- JAVA连接Redis错误提示(一)
- 乘法逆元+扩展欧几里得+Lucas
- ActiveMQ入门教程
- nltk词性标注英文简称及分类