class Node:
def __init__(self,data):
self.data=data
self.next=None
class LinkedList:
def __init__(self):
self.head=None
def lenofLL(self):
if self.head is None:
return 0
count=0
current = self.head
while current:
count+=1
current=current.next
return count
def middleofLinkedListM1(self):
if self.head is None:
return f"Invalid Index"
current = self.head
for i in range(self.lenofLL()//2):
current=current.next
return current
def middleofLinkedListM2(self):
if self.head is None:
return None
arr=[]
current=self.head
while current:
arr.append(current.data)
current=current.next
return arr[(len(arr)//2)]
def middlePart(self):
if self.head is None:
return None
current = self.head
count=0
while current:
count+=1
current=current.next
present=self.head
for _ in range(0,int(count//2)):
present=present.next
self.head=present
def append(self,data):
new_node=Node(data)
if self.head is None:
self.head=new_node
return
else:
current = self.head
while current.next:
current=current.next
current.next = new_node
new_node.next = None
def printList(self):
if self.head is None:
return None
current = self.head
while current:
print(current.data)
current = current.next
if __name__ == "__main__":
my_list = LinkedList()
my_list.append(1)
my_list.append(2)
my_list.append(3)
my_list.append(4)
my_list.append(5)
my_list.append(6)
print("Length of list:", my_list.lenofLL())
middle_node = my_list.middleofLinkedListM1()
print("Middle element M1:", middle_node.data)
print("Middle element M2:", my_list.middleofLinkedListM2())
print("Middle Part: ", my_list.middlePart())
print("Printing list elements:")
my_list.printList()
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)