Python程序检查给定链表的长度是偶数还是奇数
给定一个链表,任务是创建一个函数来检查链表的长度是偶数还是奇数。
例子:
Input : 1->2->3->4->NULL
Output : Even
Input : 1->2->3->4->5->NULL
Output : Odd
方法一:对代码进行线性计数
遍历整个 Linked List 并不断计算节点数。一旦循环完成,我们就可以检查计数是偶数还是奇数。你可以自己试试。
方法 2:一次步进 2 个节点
方法:
1. Take a pointer and move that pointer two nodes at a time
2. At the end, if the pointer is NULL then length is Even, else Odd.
Python3
# Python program to check length
# of a given linklist
# Defining structure
class Node:
def __init__(self, d):
self.data = d
self.next = None
self.head = None
# Function to check the length
# of linklist
def LinkedListLength(self):
while (self.head != None and
self.head.next != None):
self.head = self.head.next.next
if(self.head == None):
return 0
return 1
# Push function
def push(self, info):
# Allocating node
node = Node(info)
# Next of new node to head
node.next = (self.head)
# head points to new node
(self.head) = node
# Driver code
head = Node(0)
# Adding elements to Linked List
head.push(4)
head.push(5)
head.push(7)
head.push(2)
head.push(9)
head.push(6)
head.push(1)
head.push(2)
head.push(0)
head.push(5)
head.push(5)
check = head.LinkedListLength()
# Checking for length of
# linklist
if(check == 0):
print("Even")
else:
print("Odd")
# This code is contributed by Prerna saini
输出:
Odd
时间复杂度: O(n)
空间复杂度: O(1)
有关详细信息,请参阅检查给定链表的长度是偶数还是奇数的完整文章!