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

猜你喜欢