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

大型门户网站建设需要哪些技术和注意事项芮城网站开发

大型门户网站建设需要哪些技术和注意事项,芮城网站开发,怎么修改WordPress为中文,比较好的网站建设哪家好题目 给定单链表的头节点 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/539955.html

相关文章:

  • 简易广州网站建设镇江网站建设案例
  • 成都网站seo个人网站背景图片
  • 网站做程序广东狮山网站建设
  • 热度网络网站建设手机版商城网站案例
  • 学网站开发难吗宁波建网站一站式服务
  • 做百度手机网站排名宁波建网站哪家好
  • 怎么在ftp看网站后台地址做威尼斯网站代理算是违法吗
  • 如何加强省市级门户网站的建设义乌网站建设优化推广
  • dede手机网站模板企业注册地址
  • 长沙网站公司爱有声小说网站捡个校花做老婆
  • 站群推广有哪些方式在线制作app平台
  • 正规的网站建设学习网尚层装饰官网
  • 做外贸实用网站wordpress wpgo主题下载
  • 茂名营销型网站建设西宁做腋臭北大网站Y
  • 湖南网站设计费用开发公司物业移交物业协议
  • 搜索引擎中注册网站做的好看的国内网站欣赏
  • 太原中小学网站建设房地产网站欣赏
  • 省建设厅网站建筑材料备案申请甘肃业聚质网络科技有限公司
  • 常德网站制作公司网页的基本布局包括什么
  • Python做网站难不难软件公司网站建设
  • 班级展示网站广告设计图片素材免费
  • 微网站建设讯息营销网站主题有哪些内容
  • 网站后台模板安装显示不了网站管理助手
  • 郑州哪家公司做网站高端定制网站设计公司
  • 如何做淘宝直播教学视频网站在阿里巴巴上做网站有效果吗
  • 去年做啥网站能致富如何免费申请邮箱域名
  • 网站建设 单一来源都匀网站开发公司
  • 黄石网站建设推荐网站 绝对路径
  • 中山网站只设计如何设立官方网站
  • 中国东盟建设集团有限公司网站网站效果图用什么做