Computer >> Máy Tính >  >> Lập trình >> Python

Danh sách liên kết ngày càng tăng nghiêm ngặt trong Python


Giả sử chúng ta có phần đầu của một danh sách được liên kết đơn lẻ, chúng ta phải kiểm tra xem giá trị của các nút có được sắp xếp theo thứ tự tăng dần hay không.

Vì vậy, nếu đầu vào là [2,61,105,157], thì đầu ra sẽ là True.

Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau -

  • Định nghĩa một hàm giải quyết (). Điều này sẽ dẫn đầu

  • nếu head.next là null thì

    • trả về True

  • nếu head.val> =head.next.val, thì

    • trả về Sai

  • trả về giải quyết (head.next)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

[2,61,105,157]

Đầu ra

True