按奇偶拆分单链表(单链表)

按奇偶拆分单链表

给定一个带头结点的单链表 C,其节点按顺序排列为 {a1, b1, a2, b2, ..., am, bn},目标是将其拆分为两个链表:

  • 链表 A:包含所有奇数位置的节点 {a1, a2, ..., am},保持原有顺序。
  • 链表 B:包含所有偶数位置的节点 {bn, ..., b2, b1},顺序与原链表相反。

例如,给定链表 C: a1 -> b1 -> a2 -> b2 -> a3 -> b3,拆分后:

  • A 变为 a1 -> a2 -> a3
  • B 变为 b3 -> b2 -> b1

1. 算法思想

为了实现按奇偶拆分并反转偶数位置的节点顺序,算法采用双指针法尾插法头插法相结合的方式。具体步骤如下:

初始化

  • 创建两个新的头结点 A 和 B,分别用于存储奇数位置和偶数位置的节点。
  • 使用指针 p 指向当前遍历的节点,初始时指向 C 的第一个有效节点。
  • 使用指针 ra 指向链表 A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值