检查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