สมมติว่าเรามีรายการที่เชื่อมโยงกันอย่างเดียว เราต้องหาความยาวของมัน รายการที่เชื่อมโยงมีช่อง nextand val.
ดังนั้น หากอินพุตเป็นแบบ [2 -> 4 -> 5 -> 7 -> 8 -> 9 -> 3] เอาต์พุตจะเป็น 7
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- นับ :=0
- ในขณะที่โหนดไม่เป็นโมฆะ ให้ทำ
- นับ :=นับ + 1
- โหนด:=ถัดไปของโหนด
- จำนวนคืนสินค้า
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
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, node): count = 0 while node: count +=1 node=node.next return count ob = Solution() head = make_list([2,4,5,7,8,9,3]) print(ob.solve(head))
อินพุต
[2,4,5,7,8,9,3]
ผลลัพธ์
7