如何使用Python实现链表的划分为两个相等的部分操作

2023-04-11 00:00:00 链表 如何使用 划分为

实现链表的划分为两个相等的部分操作,一种简单的方法是先遍历链表,得到链表的长度,然后再遍历链表将链表分为两个相等的部分。为了方便起见,这里我们假设链表中存储的是字符串。

代码演示如下:

class ListNode:
    def __init__(self, val):
        self.val = val
        self.next = None

def partition(head):
    # 遍历链表,得到链表的长度
    length = 0
    curr = head
    while curr:
        length += 1
        curr = curr.next

    # 将链表分为两个相等的部分
    curr = head
    for i in range(length // 2):
        curr = curr.next
    second_head = curr.next
    curr.next = None
    return head, second_head

# 创建链表
head = ListNode('p')
curr = head
for char in 'idancode.com皮蛋编程':
    curr.next = ListNode(char)
    curr = curr.next

# 划分链表
first_head, second_head = partition(head)

在这个例子中,我们将链表分为了两个部分,分别是“pidancod”和“e.com皮蛋编程”。

相关文章