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

网站备案需要什么条件百度百度一下

网站备案需要什么条件,百度百度一下,网站运营工资,php做的网站怎么发布题目 给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。 请注意,偶数组和奇数组内…

题目

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。
第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。
请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。
你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

一、代码实现

func oddEvenList(head *ListNode) *ListNode {if head == nil || head.Next == nil {return head}odd := head          // 奇数链表的当前尾节点even := head.Next    // 偶数链表的当前尾节点evenHead := even     // 保存偶数链表的头节点for even != nil && even.Next != nil {// 将下一个奇数节点链接到奇数链表尾部odd.Next = even.Nextodd = odd.Next// 将下一个偶数节点链接到偶数链表尾部even.Next = odd.Nexteven = even.Next}// 将偶数链表接在奇数链表尾部odd.Next = evenHeadreturn head
}

二、算法分析

1. 核心思路
  • 双指针分离:使用两个指针 oddeven 分别追踪奇偶链表的尾部节点,通过交替连接实现原地修改
  • 循环复用:在遍历过程中逐步构建奇偶链表,保持原始相对顺序
  • 头节点保留:通过 evenHead 保存偶数链表头节点,最终合并链表时只需一次指针操作
2. 关键步骤
  1. 初始化指针odd 指向第一个节点(奇头),even 指向第二个节点(偶头)
  2. 交替连接
    • odd 的下一个节点指向 even 的下一个节点(下一个奇数节点)
    • even 的下一个节点指向新 odd 的下一个节点(下一个偶数节点)
  3. 指针推进oddeven 同步后移,继续构建各自的链表
  4. 链表合并:将偶数链表头 evenHead 接在奇数链表尾部
3. 复杂度
指标说明
时间复杂度O(n)单次遍历,每个节点访问一次
空间复杂度O(1)仅需固定数量的指针变量

三、图解示例

在这里插入图片描述

四、边界条件与扩展

1. 特殊场景验证
  • 空链表:直接返回 nil
  • 单节点链表:返回原链表(无需处理)
  • 双节点链表:保持原顺序(奇数在前,偶数在后)
  • 长交替链表:如 R-D-R-D → 分离后奇偶顺序保持不变
2. 多语言实现
# Python实现(原地修改)
class Solution:def oddEvenList(self, head: Optional[ListNode]) -> Optional[ListNode]:if not head or not head.next:return headodd, even, even_head = head, head.next, head.nextwhile even and even.next:odd.next = even.nextodd = odd.nexteven.next = odd.nexteven = even.nextodd.next = even_headreturn head
// Java实现(指针同步移动)
class Solution {public ListNode oddEvenList(ListNode head) {if (head == null || head.next == null) return head;ListNode odd = head, even = head.next, evenHead = even;while (even != null && even.next != null) {odd.next = even.next;odd = odd.next;even.next = odd.next;even = even.next;}odd.next = evenHead;return head;}
}

五、总结与扩展

1. 核心创新点
  • 链式跳跃:通过 odd.next = even.next 直接跳过偶数节点,避免多次遍历
  • 数学归纳法证明:奇数节点的下一个节点总是偶数节点的下一个节点,确保正确性
2. 扩展应用
  • 多级分离:扩展为分离模3余数不同的节点(如余0、1、2)
  • 双向链表:修改指针操作逻辑支持双向遍历
  • 环形链表检测:结合快慢指针检测环的存在
3. 工程优化方向
  • 内存预分配:预先计算链表长度优化指针操作
  • 并发安全:添加锁机制支持多线程环境下的链表操作
http://www.dtcms.com/wzjs/124425.html

相关文章:

  • 什么网站是专门做评论赚钱的设计网站排行榜前十名
  • 策划书上海优化排名网站
  • 山西网站建设怎么样长清区seo网络优化软件
  • 在网上怎么做网站宁德市人力资源和社会保障局
  • 移动端网站的优点网络营销策略存在的问题
  • vs2017 asp网站开发百度教育网站
  • 如何自己做加盟网站商城全网推广运营公司
  • wordpress建网站缺点专业网站建设公司首选
  • 网站建设费交文化事业安卓手机性能优化软件
  • 手机网站建站公司seo专业培训
  • 查看一个网站开发语言重庆企业免费建站
  • 关于做电影的网站设计广州全网推广
  • 如何用源码做网站深圳市网络营销推广服务公司
  • 做网站开发哪里可以接单营销软件站
  • 网站首页做一点开有动画信息流广告怎么投放
  • 自己做的视频可以传别的网站去吗站长工具app
  • 小说投稿赚钱的网站企业整站seo
  • 做电梯销售从哪些网站获取信息b站推广引流最佳方法
  • 自己做视频网站用cdn那个便宜千锋培训学费多少钱
  • 东莞常平中转场哈尔滨seo推广优化
  • 人力资源做网站的好处网站百度收录要多久
  • 游戏网站建设seo专业培训课程
  • 正能量软件不良网站下载兰州网站seo诊断
  • 淮北公司做网站怎么才能建立一个网站卖东西
  • 商城类网站建设网络营销软件代理
  • 发改委门户网站建设思路搜索seo优化托管
  • 做任务分享赚钱的网站北京网站优化常识
  • 网站建设杭州哪家好竞价关键词排名软件
  • 宁夏网站建站百度关键词搜索排名多少钱
  • 做网站的费用计入什么费用网站维护需要多长时间