Cho linked list. Kiểm tra độ dài của nó là chẵn hay lẻ.
Ví dụ: head=[5,8,7,4,3,6,4,5,8] → Odd (9 phần tử).
Thuật toán
- Dùng con trỏ nhảy 2 bước:
while head and head.next: head = head.next.next. - Nếu head thành None → độ dài chẵn (Even).
- Ngược lại → lẻ (Odd).
Ví dụ code
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
def solve(head):
while head and head.next:
head = head.next.next
if head is None:
return "Even"
return "Odd"
head = make_list([5,8,7,4,3,6,4,5,8])
print(solve(head))
Đầu vào
[5,8,7,4,3,6,4,5,8]
Đầu ra
Odd