สมมติว่าเรามีหัวหน้าของรายการที่เชื่อมโยงอย่างเดียว เราต้องตรวจสอบว่าค่าของโหนดนั้นเรียงลำดับจากน้อยไปมากหรือไม่
ดังนั้นหากอินพุตเป็น [2,61,105,157] ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
กำหนดฟังก์ชัน Solve() นี้จะพาดหัว
-
ถ้า head.next เป็นโมฆะ
-
คืนค่า True
-
-
ถ้า head.val>=head.next.val แล้ว
-
คืนค่าเท็จ
-
-
กลับมาแก้ (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