当前位置: 首页 > news >正文

昆山规划建设局网站seo发帖软件

昆山规划建设局网站,seo发帖软件,wordpress 发布插件,公司网站建设及推广题目 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 代码 方法一: 将链表值复制到数组中,在数组中判断是否是回文列表 # Definition for singl…

题目

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
在这里插入图片描述

代码

方法一:

将链表值复制到数组中,在数组中判断是否是回文列表

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def isPalindrome(self, head: Optional[ListNode]) -> bool:cur_node=headhead_list=[]while cur_node:head_list.append(cur_node.val)cur_node=cur_node.nextn=len(head_list)i,j=0,n-1while i<j:if head_list[i]==head_list[j]:i+=1j-=1else:return Falsereturn True

方法二:递归

利用递归回溯过程与从前往后遍历的节点的值进行比较

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def isPalindrome(self, head: Optional[ListNode]) -> bool:self.front=headdef recursively_check(current_node=head):if current_node:if not recursively_check(current_node.next):#递归到最后一个节点,开始回溯return False # 回溯的过程中出现一次False就结束代码if self.front.val != current_node.val:#以下就是回溯时的内容return Falseself.front=self.front.nextreturn Truereturn recursively_check()

方法三:

这个方法的重点就是将这段链表的前后两个部分分开,并翻转后半部分,进行比较

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def isPalindrome(self, head: Optional[ListNode]) -> bool:first_half_end = self.end_of_first_half(head)second_half_start = self.reverse_list(first_half_end.next)result=True first_position = headsecond_position = second_half_startwhile result and second_position:if first_position.val!=second_position.val:result=Falsefirst_position=first_position.nextsecond_position=second_position.nextfirst_half_end.next=self.reverse_list(second_half_start)return resultdef end_of_first_half(self,head):fast=headslow=headwhile fast.next and fast.next.next:# 确保快指没有针到最后一个节点,并且快指针能够移动两步# 这段代码奇数长度链表:slow 指向正中间的节点。偶数长度链表:slow 指向前半部分的最后一个节点fast=fast.next.nextslow=slow.nextreturn slowdef reverse_list(self,head):prev=Nonecurrent=headwhile current:next_node = current.nextcurrent.next=prevprev=currentcurrent=next_nodereturn prev
http://www.dtcms.com/a/612064.html

相关文章:

  • 工作中如何调节自己的情绪seo运营
  • 西安网站制作设计定制能够做简历的网站
  • 东莞清洁服务网站建设哪个建立网站好
  • 网站建设意见拓者设计吧室内设计论坛
  • 天津企业如何建网站龙岗网站建设需要考量些什么
  • 云服务器 能用来做网站吗ajax jsp网站开发从入门到精通
  • 博客网站建设设计论文总结石家庄专业做网站公司
  • 杭州的网站建设企业门户网站建设流程
  • 做传奇网站怎么弄教育门户网站建设方案
  • 网站建设 公司新闻H5建网站
  • 网站域名地址是什么网站开发的晋升晋升空间路径
  • wordpress漫画站ipv6网络设计案例
  • asp网站浏览器兼容如何提高网站知名度
  • 网站建设属于哪类税率制作投票网站
  • 欢迎访问中国建设银行网站哪些网络公司可以做机票预订网站
  • 2017网站建设方案辽宁建设工程信息网新平台
  • 东莞小学网站建设厦门市房地产建设局网站
  • 2010年青海省建设厅网站黄页网络的推广
  • 隆尧网站centos amh wordpress
  • 民治做网站的公司网站描述代码怎么写
  • 企业平台网站制作wordpress迁移到jekyll
  • 网站合同书无锡网站开发公司
  • 东莞高端网站建设多少钱郑州网站建设优化
  • wordpress建站用什么自己做网站用什么app
  • 网站游戏下载wordpress插件全集
  • 宠物网站开发背景关键词网站建设
  • 阿里云网站方案建设书模板柳州市住房建设保障网
  • 佛山建站平台进一步加强舆情管控
  • 企业关键词优化推荐关键词seo排名优化如何
  • 给一个网站如何做推广php 企业 网站