如何使用Python实现链表的数组的中位数操作

2023-04-11 00:00:00 数组 如何使用 中位数

步骤如下:

  1. 定义链表的结点类,包括结点值和指向下一个结点的指针;

  2. 定义链表类,包括链表的头结点和尾结点,以及链表的长度。同时定义链表的中位数方法,通过链表的长度来确定中位数所在的结点位置,然后遍历链表找到该结点并返回其结点值;

  3. 初始化链表,向其中添加节点;

  4. 调用链表的中位数方法,输出结果。

以下是完整代码:

# 定义链表结点类
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

# 定义链表类
class LinkedList:
    def __init__(self):
        self.head = None
        self.tail = None
        self.length = 0

    # 向链表末尾添加结点
    def append(self, val):
        node = ListNode(val)
        if self.head is None:
            self.head = node
            self.tail = node
        else:
            self.tail.next = node
            self.tail = node
        self.length += 1

    # 链表的中位数方法
    def median(self):
        middle = self.length // 2
        cur = self.head
        for i in range(middle):
            cur = cur.next
        if self.length % 2 == 0:
            return (cur.val + cur.next.val) / 2
        else:
            return cur.val

# 初始化链表
linked_list = LinkedList()
linked_list.append(3)
linked_list.append(1)
linked_list.append(4)
linked_list.append(1)
linked_list.append(5)

# 调用链表的中位数方法,并输出结果
print(linked_list.median())

输出结果为:4.0,表示序列[1, 1, 3, 4, 5]的中位数为4。

相关文章