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

idc数据中心厦门seo排名优化

idc数据中心,厦门seo排名优化,做网站建设公司排名,人才培训网LCR 021. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) 可以使用双指针方法来解决这个问题,这样可以在一次遍历内完成删除操作,从而达到 O(n) 的时间复杂度。以下是 Python 代码实现: 解题思路: 初始化快…

LCR 021. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)

可以使用双指针方法来解决这个问题,这样可以在一次遍历内完成删除操作,从而达到 O(n) 的时间复杂度。以下是 Python 代码实现:

解题思路:

  1. 初始化快慢指针:使用两个指针 fastslow,都指向头结点。
  2. 快指针先走 n 步:这样当快指针到达链表末尾时,慢指针正好指向倒数第 n 个节点的前一个节点。
  3. 同时移动快慢指针:直到快指针到达链表的末尾。
  4. 删除目标节点:调整前一个节点的 next 指针。

Python 代码:

class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextdef removeNthFromEnd(head: ListNode, n: int) -> ListNode:dummy = ListNode(0, head)  # 添加哑节点,方便处理边界情况fast = slow = dummy  # 快慢指针初始化指向哑节点# 让快指针先走 n+1 步,这样 slow 指向待删除节点的前一个节点for _ in range(n + 1):fast = fast.next# 同时移动快慢指针,直到快指针到达链表尾部while fast:fast = fast.nextslow = slow.next# 删除倒数第 n 个节点slow.next = slow.next.nextreturn dummy.next  # 返回真正的头节点

复杂度分析

  • 时间复杂度: O(n),只遍历了一次链表。
  • 空间复杂度: O(1),只用了常数级额外空间。

示例

# 构造链表 1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))# 删除倒数第 2 个节点
new_head = removeNthFromEnd(head, 2)# 打印新链表
cur = new_head
while cur:print(cur.val, end=" -> ")cur = cur.next
# 输出:1 -> 2 -> 3 -> 5 ->

这个方法使用了 哑节点(dummy node),有效地避免了删除头节点的特殊情况,使代码更加简洁稳健。

http://www.dtcms.com/wzjs/93724.html

相关文章:

  • 做seo需要会网站开发吗河南靠谱seo地址
  • 网站建设需要多少钱百度快照投诉中心
  • 全国建设工程信息网站潍坊网站收录
  • 携程网站建设神马推广
  • 网站里面添加支付怎么做网络整合营销理论案例
  • 找人做网站产生纠纷算诈骗吗重庆网站搜索排名
  • 怎样做网站的反链合肥seo搜索优化
  • 建设网站的知识市场推广方案怎么写
  • 个人网站怎么做在线推广网站的方法
  • 自己怎么拍做美食视频网站竞价托管服务多少钱
  • 跟老外做网站百度认证官网申请
  • 做网站用多大配置的服务器网络推广公司电话
  • 百度搜不到我的网站网络兼职平台
  • 城市建设和房屋管理部门网站google关键词指数
  • 社区网站建设资金申请seo网站优化排名
  • 拿网站的文章做外链怎么开展网络营销推广
  • php网站开发优势百度站长工具平台登录
  • 网页设计制作代码大全seo优化顾问服务
  • 网站换域名了怎么做301重定向班级优化大师的功能
  • 做午夜电影网站杭州seo排名优化
  • 网站后台做数据库备份代码磁力天堂
  • 做网站前端用什么语言百度安装免费下载
  • 超值的网站建设谷歌广告投放
  • 大连网站建设设计公司公司产品推广方案
  • 武汉光谷发生枪击案aso苹果关键词优化
  • 聊天网站开发重庆seo务
  • 外贸网站怎么做优化河南省最新通知
  • 网站公司深圳网站优化和网站推广
  • 400网站建设办公58同城安居客
  • 织梦网站模板安装百度搜索词排名