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

java做的网站放哪打开百度网站

java做的网站放哪,打开百度网站,湛江手机网站建设,物流网络名词解释LeetCode 热题 100 | 24. 两两交换链表中的节点 大家好,今天我们来解决一道经典的链表问题——两两交换链表中的节点。这道题在 LeetCode 上被标记为中等难度,要求两两交换链表中的相邻节点,并返回交换后链表的头节点。 问题描述 给你一个链…

LeetCode 热题 100 | 24. 两两交换链表中的节点

大家好,今天我们来解决一道经典的链表问题——两两交换链表中的节点。这道题在 LeetCode 上被标记为中等难度,要求两两交换链表中的相邻节点,并返回交换后链表的头节点。


问题描述

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

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

示例 2:

输入:head = []
输出:[]

示例 3:

输入:head = [1]
输出:[1]

提示:

  • 链表中节点的数目在范围 [0, 100]
  • 0 <= Node.val <= 100

解题思路

核心思想
  1. 虚拟头结点

    • 使用一个虚拟头结点 dummy,其 next 指向链表的头结点。这可以简化对头结点的处理。
  2. 两两交换

    • 使用一个指针 prev,初始时指向虚拟头结点。
    • 每次交换 prev.nextprev.next.next 指向的两个节点。
    • 更新指针,继续处理下一对节点。
  3. 特殊情况

    • 如果链表为空或只有一个节点,直接返回原链表。

Python代码实现

class Solution:def swapPairs(self, head: ListNode) -> ListNode:# 创建一个虚拟头结点dummy = ListNode(0)dummy.next = headprev = dummywhile prev.next and prev.next.next:# 定义需要交换的两个节点first = prev.nextsecond = prev.next.next# 交换节点prev.next = secondfirst.next = second.nextsecond.next = first# 移动 prev 指针prev = firstreturn dummy.next

代码解析

  1. 虚拟头结点

    • 创建一个虚拟头结点 dummy,并将其 next 指向链表的头结点。这可以简化对头结点的处理。
  2. 初始化指针

    • 初始化指针 prev,指向虚拟头结点。
  3. 两两交换

    • 使用 while 循环,条件是 prev.nextprev.next.next 都不为 None
    • 定义需要交换的两个节点 firstsecond
    • 交换节点:
      • prev.next 指向 second
      • first.next 指向 second.next
      • second.next 指向 first
    • 更新 prev 指针,继续处理下一对节点。
  4. 返回结果

    • 返回 dummy.next,即交换后的链表头结点。

复杂度分析

  • 时间复杂度:O(n),其中 n 是链表的长度。每个节点只被访问一次。
  • 空间复杂度:O(1),只使用了常数级别的额外空间。

示例运行

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

总结

通过使用虚拟头结点和两两交换的方法,我们可以高效地完成链表中相邻节点的交换。这种方法在 O(n) 时间复杂度内完成,并且只使用了 O(1) 的额外空间。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

关注我,获取更多算法题解和编程技巧!

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

相关文章:

  • 襄州区住房和城乡建设局网站近期新闻热点大事件
  • 网页设计模板流程图昆明seo工资
  • 东莞网页设计培训班天津关键词优化网排名
  • 武汉楼市最新消息今天seo搜索引擎优化试题
  • 聊城seo整站优化报价seo流量排行榜神器
  • 企业网站怎么做跟淘宝链接接推广app任务的平台
  • 上海建筑设计公司网站成品网站源码1688免费推荐
  • 粘土做龙网站视频做一个网站需要什么
  • 做百度手机网站点击软教育机构加盟
  • 做外贸用什么社交网站网络广告的计费方式
  • 电脑做系统教学网站放单平台大全app
  • 网站建设服务费如何做会计分录全国各城市疫情高峰感染进度
  • 中升乙源建设工程有限公司网站微信推广图片
  • 花市小说网站那里进个人如何建立免费网站
  • 用什么网站做cpa关键词指数查询工具
  • 网站繁体和中文这么做今日新闻快讯10条
  • 网站制作基本规则seo管理平台
  • 网站建设赚钱雷神代刷网站推广
  • vps服务器怎么做网站国内搜索引擎排行榜
  • 武汉营销型网站设计市场推广方案怎么写
  • 福田做网站海外推广运营
  • dw网站开发教程佛山网站优化
  • 机械手表网站百度认证官网申请
  • 中国品牌网是什么网站站长之家备案查询
  • 独立网站需要多少钱深圳营销策划公司十强
  • 外国人做的篆字网站google怎么推广
  • 做淘宝网站用什么软件有哪些内容网络营销课程论文
  • 在线gif图片制作优化网站的步骤
  • 河北建设信息网seo网站优化推广
  • 使用云主机做网站教程上海疫情最新消息