设计程序将一个数值类型数据元素的单链表按数据的奇偶性分解成两个单链表
时间: 2024-12-18 09:17:16 浏览: 8
要设计一个程序,将一个数值类型的数据元素的单链表按奇偶性分解成两个单独的链表,我们需要创建两个新的链表:一个用于存储奇数元素,另一个用于存储偶数元素。这里是一个简单的步骤说明:
1. 定义链表节点结构(如果还没有的话):
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
```
2. 创建两个空的链表头节点,分别用于存放奇数和偶数元素:
```python
odd_head = ListNode()
even_head = ListNode()
```
3. 遍历原始链表:
- 使用一个指针遍历原始链表。
- 检查当前节点值的奇偶性。
```python
def separate_odd_even(head):
current = head
while current is not None:
# 获取当前节点的值
val = current.val
if val % 2 == 0:
# 奇数节点,添加到偶数链表
current.next = even_head.next
even_head.next = ListNode(val)
even_head = even_head.next
else:
# 偶数节点,添加到奇数链表
current.next = odd_head.next
odd_head.next = ListNode(val)
odd_head = odd_head.next
current = current.next
return odd_head, even_head
```
4. 结果是两个链表的头节点:`odd_head` 和 `even_head`。
现在你可以调用这个函数并传入你的链表头节点来得到结果:
```python
# 假设 original_list 是你的原始链表头节点
odd_list, even_list = separate_odd_even(original_list)
```
阅读全文