📌  相关文章
📜  Python程序检查给定链表的长度是偶数还是奇数

📅  最后修改于: 2022-05-13 01:56:56.769000             🧑  作者: Mango

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)

有关详细信息,请参阅检查给定链表的长度是偶数还是奇数的完整文章!