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

力扣-链表相关题 持续更新中。。。。。。

一.相交链表

1.题目

160. 相交链表 - 力扣(LeetCode)

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

图示两个链表在节点 c1 开始相交

 

2.题解 

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):def getIntersectionNode(self, headA, headB):""":type head1, head1: ListNode:rtype: ListNode"""pA=headApB=headBwhile pA!=pB:pA=pA.next if pA else headBpB=pB.next if pB else headAreturn pA

二.反转链表

1.题目

206. 反转链表 - 力扣(LeetCode)

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

2.题解

 方法一:笨方法 反转存储到列表里,再根据这个列表新建一个链表

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):def reverseList(self, head):""":type head: Optional[ListNode]:rtype: Optional[ListNode]"""vals=[]pA=headwhile pA:vals.append(pA.val)pA=pA.nextvals=vals[::-1]if not vals:#避免空值导致后面访问空值越界return Nonedummy=ListNode(vals[0])#创建第一个节点head2=dummy #创建头指针for val in vals[1:]:#从第一个值开始而不是第0个head2.next=ListNode(val)head2=head2.nextreturn dummy

方法二:直接反转链表方向 (头插)

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):def reverseList(self, head):""":type head: Optional[ListNode]:rtype: Optional[ListNode]"""pre=Nonecur=headwhile cur:nxt=cur.nextcur.next=prepre=curcur=nxtreturn pre

三.判断回文链表

1.题目

234. 回文链表 - 力扣(LeetCode)

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

示例 1:

输入:head = [1,2,2,1]
输出:true

2.题解

回文链表反转存储在列表【】中

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):def isPalindrome(self, head):""":type head: Optional[ListNode]:rtype: bool"""vals=[]while head:vals.append(head.val)head=head.nextreturn vals==vals[::-1]

http://www.xdnf.cn/news/1168039.html

相关文章:

  • UE5 UI ScrollBox 滚动框
  • 欧拉系统二进制部署Docker
  • Linux_Ext系列文件系统基本认识(一)
  • Fluent许可与网络安全策略
  • 【洛谷】用两个数组实现静态单链表、静态双向链表,排队顺序
  • 【C语言进阶】动态内存管理(1)
  • 赋能未来数学课堂——基于Qwen3、LangChain与Agent架构的个性化教辅系统研究
  • Vue + WebSocket 实时数据可视化实战:多源融合与模拟数据双模式设计
  • vscode目录,右键菜单加入用VSCode打开文件和文件夹(快速解决)(含删除)(脚本)
  • 华为服务器操作系统openEuler介绍与安装
  • 信息学奥赛一本通 1553:【例 2】暗的连锁
  • C++_Hello算法_队列
  • Grails(Groovy)框架抛出NoHandlerFoundException而不是返回404 Not Found
  • Android-API调用学习总结
  • 专题 前端面试知识梳理大全
  • Leetcode题解:209长度最小的子数组,掌握滑动窗口从此开始!!!
  • Android13重置锁屏(1)
  • 碰一碰发视频源码搭建:支持OEM
  • 现在希望用git将本地文件crawler目录下的文件更新到远程仓库指定crawler目录下,命名相同的文件本地文件将其覆盖
  • 【Tomcat】Tomcat线程池深度调优手册(终极版)
  • 用USBi仿真器的SPI模式和IIC模式来调试DSP应该怎么做?
  • Vue项目中的AJAX请求与跨域问题解析
  • Linux CentOS 虚拟机升级内核至4.x以上版本
  • 异构融合 4A:重构高性能计算与复杂场景分析的安全与效率边界
  • Go 的第一类对象与闭包
  • Vercel AI SDK 3.0 学习入门指南
  • 厚铜板载流革命与精密压合工艺——高可靠性PCB批量制造的新锚点
  • 容器化部署 Tomcat + MySQL 实战指南:从入门到进阶
  • 分布式高可用ELK平台搭建及使用保姆级教程指南
  • 智能制造——解读52页汽车设计制造一体化整车产品生命周期PLM解决方案【附全文阅读】