Python 程序从链表的最后一个节点开始打印第 N 个节点
pythonserver side programmingprogramming
当需要从链表的末尾打印特定节点时,会定义方法 ‘list_length’ 和 ‘return_from_end’。‘list_length’ 返回链表的长度。
‘return_from_end’ 方法用于返回链表末尾的第 n 个元素。
下面是同样的演示 −
示例
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList_structure: def __init__(self): self.head = None self.last_node = None def add_vals(self, data): if self.last_node is None: self.head = Node(data) self.last_node = self.head else: self.last_node.next = Node(data) self.last_node = self.last_node.next def list_length(my_list): my_len = 0 curr = my_list.head while curr: curr = curr.next my_len = my_len + 1 return my_len def return_from_end(my_list, n): l = list_length(my_list) curr = my_list.head for i in range(l - n): curr = curr.next return curr.data my_instance = LinkedList_structure() my_list = input('输入链接列表的元素..').split() for elem in my_list: my_instance.add_vals(int(elem)) n = int(input('输入 n 的值.. ')) my_result = return_from_end(my_instance, n) print('倒数第 n 个元素是:{}'.format(my_result))
输出
输入链接列表的元素..45 31 20 87 4 输入 n 的值.. 2 倒数第 n 个元素是:87
解释
‘Node’类。
创建另一个具有所需属性的 ‘LinkedList_structure’ 类。
它有一个 ‘init’ 函数,用于将第一个元素(即 ‘head’ 和 ‘last_node’)初始化为 ‘None’。
定义了一个名为 ‘add_vals’ 的方法,用于将值添加到堆栈中。
定义了一个名为 ‘list_length’ 的方法,用于确定链接列表的长度,并将其作为输出返回。
定义了另一个名为 ‘return_from_end’ 的方法,用于返回 ‘n’从链接列表的末尾获取值。
创建 ‘LinkedList_structure’ 的实例。
将元素添加到链接列表中。
元素显示在控制台上。
在此链接列表上调用 ‘return_from_end’ 方法。
输出显示在控制台上。