检查Python中的链表中连续节点的绝对差是否为1
假设我们有一个单链表,其中每个节点都包含一个整数值。我们必须找出两个连续节点之间的绝对差是否为1。
因此,如果输入类似于start_node->5->6->7->8->7->6->5->4,则输出将为True。
示例
让我们看下面的实现以更好地理解-
import math class link_node: def __init__(self, value): self.value= value self.link= None def create_node(value): temp = link_node(value) temp.value = value temp.link = None return temp def make_list(elements): head = link_node(elements[0]) for element in elements[1:]: ptr = head while ptr.link: ptr = ptr.link ptr.next= link_node(element) return head def solve(start_node): temp = start_node while (temp): if (temp.link == None): break if (abs((temp.value) - (temp.link.value)) != 1) : return False temp = temp.link return True start_node = make_list([5, 6, 7, 8, 7, 6, 5, 4]) print(solve(start_node))
输入
[5, 6, 7, 8, 7, 6, 5, 4]输出结果
True