Get your own Python server Result Size: 625 x 565
x
 
class Node:
  def __init__(self, data):
    self.data = data
    self.next = None
def traverseAndPrint(head):
  currentNode = head
  while currentNode:
    print(currentNode.data, end=" -> ")
    currentNode = currentNode.next
  print("null")
def insertNodeAtPosition(head, newNode, position):
  if position == 1:
    newNode.next = head
    return newNode
  currentNode = head
  for _ in range(position - 2):
    if currentNode is None:
      break
    currentNode = currentNode.next
  newNode.next = currentNode.next
  currentNode.next = newNode
  return head
node1 = Node(7)
node2 = Node(3)
node3 = Node(2)
node4 = Node(9)
node1.next = node2
node2.next = node3
node3.next = node4
print("Original list:")
traverseAndPrint(node1)
# Insert a new node with value 97 at position 2
newNode = Node(97)
node1 = insertNodeAtPosition(node1, newNode, 2)
print("\nAfter insertion:")
traverseAndPrint(node1)
Original list:
7 -> 3 -> 2 -> 9 -> null

After insertion:
7 -> 97 -> 3 -> 2 -> 9 -> null