检查链表是否在 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]输出结果
TrueTrue
以上是 检查链表是否在 Python 中排序(迭代和递归) 的全部内容, 来源链接: utcz.com/z/335651.html