假设我们有一个单链表的头,我们必须检查节点的值是否按严格的升序排序。
因此,如果输入类似于[2,61,105,157],则输出将为True。
为了解决这个问题,我们将遵循以下步骤-
定义一个功能solve()
。这将需要
如果head.next为null,则
返回True
如果head.val> = head.next.val,则
返回False
返回solve(head.next)
让我们看下面的实现以更好地理解-
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 class Solution: def solve(self, head): if head.next == None: return True if head.val >= head.next.val: return False return self.solve(head.next) ob = Solution()head = make_list([2,61,105,157]) print(ob.solve(head))
[2,61,105,157]
输出结果
True