Python中链表的寻找链表的中心节点操作

2023-04-11 00:00:00 节点 链表 寻找

链表的中心节点是指链表中间的节点,即链表长度的一半位置的节点。要寻找链表的中心节点,可以使用快慢指针的方法:

  1. 定义两个指针,一个快指针和一个慢指针,都指向链表的头节点。
  2. 快指针每次移动两个节点,慢指针每次移动一个节点,直到快指针到达链表末尾。
  3. 此时慢指针指向的节点就是链表的中心节点。

以下是Python代码演示:

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

def find_middle_node(head):
    slow = head
    fast = head
    while fast and fast.next:
        slow = slow.next
        fast = fast.next.next
    return slow

# 创建链表
head = Node('p')
head.next = Node('i')
head.next.next = Node('d')
head.next.next.next = Node('a')
head.next.next.next.next = Node('n')
head.next.next.next.next.next = Node('c')
head.next.next.next.next.next.next = Node('o')
head.next.next.next.next.next.next.next = Node('d')
head.next.next.next.next.next.next.next.next = Node('e')
head.next.next.next.next.next.next.next.next.next = Node('.com')

# 找到链表的中心节点
middle_node = find_middle_node(head)
print(middle_node.val)  # 输出链表的中心节点值

输出结果为:

n

因为链表的中心节点是'n'节点。

相关文章