如何使用Python实现链表的数组的中位数操作
步骤如下:
-
定义链表的结点类,包括结点值和指向下一个结点的指针;
-
定义链表类,包括链表的头结点和尾结点,以及链表的长度。同时定义链表的中位数方法,通过链表的长度来确定中位数所在的结点位置,然后遍历链表找到该结点并返回其结点值;
-
初始化链表,向其中添加节点;
-
调用链表的中位数方法,输出结果。
以下是完整代码:
# 定义链表结点类 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。
相关文章