python 链表的奇偶重排
时间: 2024-01-31 21:11:09 浏览: 77
Python链表的奇偶重排是指将链表中的奇数节点和偶数节点分别排在一起,且保持它们的相对顺序不变。下面是一种实现方式:
1. 定义两个指针,odd指向奇数节点的末尾,even指向偶数节点的末尾。
2. 遍历链表,根据节点的位置将其连接到对应的奇数或偶数节点的末尾。
3. 最后将奇数节点的末尾指向偶数节点的头部,形成新的链表。
下面是Python代码实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def oddEvenList(head):
if not head or not head.next:
return head
odd = head
even = head.next
even_head = even
while even and even.next:
odd.next = even.next
odd = odd.next
even.next = odd.next
even = even.next
odd.next = even_head
return head
```
这样,经过奇偶重排后,链表中的奇数节点和偶数节点会分别排在一起。
阅读全文