Python 中的严格递增链表
假设我们有一个单链表的头部,我们需要检查链表节点的值是否按严格升序排序。
因此,如果输入类似 [2,61,105,157],则输出将为 True。
为解决这个问题,我们将遵循以下步骤 -
定义一个函数 solve() 。这将占用 head
如果 head.next 为空,则
返回 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
广告