检查链表是否在 Python 中排序(迭代和递归)

假设我们有一个链表,我们必须定义两个函数来检查链表是否按非递增顺序排序。其中一种方法以迭代方式工作,另一种以递归方式工作。

因此,如果输入类似于 L = [15, 13, 8, 6, 4, 2],那么输出将为 True。

示例

让我们看看以下实现以获得更好的理解 -

class ListNode:

   def __init__(self, data, next = None):

     self.val= data

     self.next= next

def make_list(elements):

   head = ListNode(elements[0])

   for element in elements[1:]:

      ptr = head

      while ptr.next:

         ptr = ptr.next

     ptr.next= ListNode(element)

   return head

def solve_iter(head):

   if head == None:

      return True

   whilehead.next!= None:

      current = head

      ifcurrent.val<= current.next.val:

         return False

      head = head.next

   return True

def solve_rec(head):

   if head == None orhead.next== None:

      return True

   returnhead.val> head.next.val and solve_rec(head.next)

L = make_list([15, 13, 8, 6, 4, 2])

print(solve_iter(L))

print(solve_rec(L))

输入

[15, 13, 8, 6, 4, 2]
输出结果
True

True

以上是 检查链表是否在 Python 中排序(迭代和递归) 的全部内容, 来源链接: utcz.com/z/335651.html

回到顶部