将链表分解为两个链表
时间: 2024-03-13 13:23:42 浏览: 28
链表分解为两个链表的一种常见方法是根据某个条件将链表中的节点拆分为两个链表。以下是一个示例的实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def splitLinkedList(head, condition):
# 创建两个新链表的头节点
list1 = ListNode()
list2 = ListNode()
# 创建两个指针分别指向两个链表的当前节点
curr1 = list1
curr2 = list2
# 遍历原始链表
curr = head
while curr:
if condition(curr.val):
# 当满足条件时,将节点加入第一个链表
curr1.next = curr
curr1 = curr1.next
else:
# 当不满足条件时,将节点加入第二个链表
curr2.next = curr
curr2 = curr2.next
# 更新当前节点
curr = curr.next
# 将两个链表的尾节点指向 None,表示结束
curr1.next = None
curr2.next = None
# 返回两个拆分后的链表
return list1.next, list2.next
```
你可以根据具体的条件来调用这个函数,例如可以传入一个函数来判断节点值是否满足特定要求。使用这个函数可以将原始链表分解为两个新的链表。