检查链表是否在 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
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短