回文链表

题目

判断一个链表是否是回文链表

思路

找链表中点
反转后一段链表
然后依次判断两个链表值是否相等

def huiwenlink(link):
  head = link.head
  fast = slow = head.next
  while fast.next and fast.next.next:
    fast = fast.next.next
    slow = slow.next
  mid = slow
  rpre = Node()
  rhead_cur = mid.next
  mid.next = None
  
  while rhead_cur:
    rhead_next = rhead_cur.next
    rhead_cur.next = rpre 
    rpre = rhead_cur
    result = rhead_cur
    rhead_cur = rhead_next

  result_head = result
  while result_head.next.next is not None:
    result_head = result_head.next
  result_head.next = None
  lresult = head.next
  
  head_result = result
  head_lresult = lresult
  while head_result and head_lresult:
    if head_result.value != head_lresult.value:
      return False
    head_lresult = head_lresult.next
    head_result = head_result.next
  return True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值