当前位置: 首页 > 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.lryc.cn/news/595822.html

相关文章:

  • 【Android】Popup menu:弹出式菜单
  • KafkaMQ 日志采集最佳实践
  • 《一种利用电阻抗和声学断层扫描进行触觉感应的仿生弹性机器人皮肤》论文解读
  • 基于开源AI智能名片链动2+1模式与S2B2C商城小程序的淘宝新店引流与好评优化策略研究
  • 92套毕业相册PPT模版
  • ES操作笔记
  • 认识自我的机器人:麻省理工学院基于视觉的系统让机器了解自身机体
  • 机器人芯片(腾讯元宝)
  • 合同审核:法务的“冰与火之歌”,如何唱出企业安全新篇章?
  • Python趣味算法:实现任意进制转换算法原理+源码
  • [hot 100]两数之和-Python3-Hash Table
  • 物联网_TDengine_EMQX_性能测试
  • Java 大视界 -- Java 大数据在智能交通自动驾驶车辆与周边环境信息融合与决策中的应用(357)
  • UE5 UI 水平框
  • RAG(检索增强生成)里的文档管理
  • Jiasou TideFlow AIGC SEO Agent:全自动外链构建技术重构智能营销新标准
  • UE5 UI 安全区
  • powerquery如何实现表的拼接主键
  • 零事故网站重构:11步标准化流程与风险管理指南
  • 小鹏汽车视觉算法面试30问全景精解
  • JavaScript AJAX 实现,演示如何将 Token 添加到 Authorization
  • Android ViewModel 深度解析:原理、使用与最佳实践
  • MCP消息协议和传输协议(Java角度)
  • Apache Ignite 长事务终止机制
  • -----------------------------------事务--------------------------
  • android 12 的 aidl for HAL 开发示例
  • Apache Ignite 中的 SQL 模式(Schema)管理机制
  • Matplotlib绘制各种图参考
  • #Linux内存管理#mmap函数创立私有匿名映射的工作原理
  • 在 Ubuntu 22.04 上安装并优化 Nginx nginx入门操作 稍难,需要有一定理论 多理解 多实践