如何把单链表中的奇偶结点分开
时间: 2024-09-20 18:02:28 浏览: 25
Leetcode 刷题 (9)简单单链表:奇偶链表
将单链表中的奇数节点和偶数节点分开,可以分为两个步骤:
1. 遍历链表:首先,创建两个空链表,一个用于存储奇数节点(odd_list),另一个用于存储偶数节点(even_list)。然后,遍历原始链表,每次迭代处理当前节点。
2. 分类操作:对于每个节点,检查它的值是否为偶数。如果是偶数(例如,能被2整除),则将其添加到偶数链表;如果为奇数,则添加到奇数链表。这里需要更新两个链表的头指针,并保持它们各自的节点顺序。
以下是伪代码示例:
```python
def separate_odd_even(head):
odd_head = None
even_head = None
current = head
while current is not None:
next_node = current.next
# 判断节点值的奇偶性
if current.value % 2 == 0:
if even_head is None:
even_head = current
else:
even_head.next = current
even_head = even_head.next
else:
if odd_head is None:
odd_head = current
else:
odd_head.next = current
odd_head = odd_head.next
current = next_node
return odd_head, even_head
```
阅读全文