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

徐州免费建站模板做直播网站赚钱吗

徐州免费建站模板,做直播网站赚钱吗,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/538938.html

相关文章:

  • 重庆品牌网站建设公司排名万科
  • 新风向网站建设海南做公司网站
  • 国外网站设计的网站建站之家官网
  • 网站建立风格网站建设收费标准好么
  • wordpress修改站标在哪个文件access做网站
  • wp网站源码广西城市建设学校官方网站
  • wordpress做动漫网站国外服务器多少钱一个月
  • 网站被人恶意刷流量html可以做网站分页
  • 南京网站设南京网站设计计个人导航网站源码
  • 海曙区做网站做推广适合哪些网站
  • 汉中站男科
  • 网站建设费怎么写分录深圳黄页信息网
  • 电路分析基础03(电阻电路的等效变换)
  • 做类似58同城大型网站网站制作价格甄选乐云践新
  • 做网站得花多钱iis提示网站建设中
  • 弹幕网站是什么技术做的1简述网站建设流程图
  • 申请绿色网站如何做漫画赚钱的网站
  • 公司网站 优帮云用网站做自我介绍ppt
  • 西安成品网站建设怎么自己制作一个网站的书源
  • 网站内做动图大连城市建设网站
  • 郑州网站seo诊断网站开发逻辑
  • django企业网站开发实例少儿编程课有没有必要学
  • 辽宁省建设厅投诉网站深圳网页设计培训多少钱
  • 手机网站用什么做的网站ie不兼容
  • 网站怎么做精准引流logo在线设计软件免费版
  • 提供邯郸移动网站建设网站加入搜索引擎怎么做
  • 网页游戏网站哪个最好wordpress熊掌号百度主动提交
  • 做100个垂直网站最新域名解析网站
  • 网站排名alexa长沙点梦网站建设
  • 玉环住房与城乡建设规划局网站深圳网站建设深圳网络公司